gpt4 book ai didi

java - 赋值和泛型编译问题

转载 作者:行者123 更新时间:2023-12-02 02:44:45 25 4
gpt4 key购买 nike

在学习Generics时,我发现第一个方法m1编译成功,而第二个方法m2无法编译并显示以下错误消息:

Type mismatch: cannot convert from int to Long

   class Test1 {

<T extends Integer> void m1(T arg) {
long i = arg;
}

void m2(int i) {
Long l = i;// Compilation fails
}
}

有人可以帮助我理解这种行为吗?

最佳答案

这是无效的

Long l = i;

因为 i 是一个原始整数,但 l 是一个 long 类型的对象,所以“转换”不会自动发生

你可以获得该整数的值

Long l = Long.valueOf(i); 

请注意,与装箱促进原语相关的另一个选项可以是:

void m2(int i) {
long x = i;
Long l = x;
}

关于java - 赋值和泛型编译问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44800322/

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