gpt4 book ai didi

java - 为什么我在 TimeUnit 上得到一个编译器错误(不能从 long 转换为 Long)到一个日期,而如果我更改 java 编译器我就不再得到它

转载 作者:行者123 更新时间:2023-11-29 03:21:06 25 4
gpt4 key购买 nike

我有这段代码,在最后一行编译器给我错误:不能从长投到长。如果我更改我的 java 编译器,我取消选中“在 java BUild 路径上使用来自执行环境 CDC-1.1/Foundation.1-1 的合规性”复选框,然后我选择合规性编译器级别 1.7 我不再收到错误了吗?有一种方法可以在不更改 Java 编译器合规性的情况下避免出现该错误吗?

package data;

import java.util.Date;
import java.util.Calendar;
import java.util.concurrent.TimeUnit;

public class DataProva {

public static void main(String[] args) {


Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();

cal2.set(2010,0,1,12,0);

Date date1 = cal2.getTime();

System.out.println(date1);

long mill = Math.abs(cal1.getTimeInMillis() - date1.getTime());


long hours = TimeUnit.MILLISECONDS.toHours(mill);


Long dayss = TimeUnit.HOURS.toDays(hours); // here i get compiler error cannot cast from long to Long

非常感谢!

编辑:我将 long dayss 更改为 Long,因为 java 更改了它。我还有两个问题:1) 为什么我的java用这么旧的版本编译。2)为什么如果我这样投它: Long days = (Long) TimeUnit.HOURS.toDays(小时);不一样。我如何在 Java 1.4 中构建包装器

我做的每个项目都是这样开始的: mypic

最佳答案

Java 1.5 添加了一个称为自动装箱的功能,它在原始类型(如 long)和装箱包装类型(如 Long)之间隐式转换。

早期版本没有此功能,因此您需要自己构造包装器类型。

关于java - 为什么我在 TimeUnit 上得到一个编译器错误(不能从 long 转换为 Long)到一个日期,而如果我更改 java 编译器我就不再得到它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23596020/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com