【发布时间】:2021-12-18 06:24:08
【问题描述】:
class A <T>{
T a;
A(){
a=89l;//error: incompatible types: long cannot be converted to T
}
}
public class Main extends Exception{
public static void main(String[] args) {
}
}
为什么它给了我错误我做了所有的事情语法
【问题讨论】:
-
T 是一个泛型类型参数。这取决于任何代码实例化 A。如果有人创建了
A<String>或A<List>,那么字段a将不是数字字段,因此尝试将其设置为 89L 没有意义。如果您希望a为 long,请不要将其声明为泛型类型。
标签: java class templates generics initialization