问题:
为什么会报 Unchecked call to 'set(T)' as a member of raw type 'org.test.MyList'
这个警告 ?
到底警告我啥?
问题:
为什么会报 Unchecked call to 'set(T)' as a member of raw type 'org.test.MyList'
这个警告 ?
到底警告我啥?
简单说就是,你的 MyList
是一个泛型类,它带有一个泛型参数 <T>
,所以你在任何用到这个类的地方,都要明确指明泛型参数的值,比如创建 MyList
对象时,就应该这么写:
MyList<String> mylist1 = new MyList<>();
// 上面的 <String> 就是泛型参数的值
如果不这么写,编译器就会因为你没有限制 mylist1 对象的内容类型而对代码进行警告。
如果你确实认为 mylist1 这个对象可以放入任何类型的内容,那么就可以声明为:
MyList<Object> mylist1 = new MyList<>();
这样 mylist1 里面就可以放入任何类型的值了。
8 回答6.4k 阅读
1 回答4.2k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
2 回答3.2k 阅读
2 回答3.9k 阅读
3 回答1.7k 阅读✓ 已解决
1 回答2k 阅读✓ 已解决
你这个警告 "Unchecked call to 'set(T)' as a member of raw type" 一般说明类型参数没有被明确指定。这意味着编译器无法确保在运行时类型安全,因此可能会引发 ClassCastException。
这样,编译器就能确保类型安全,不会再显示警告。