Eclipse for Java中“不可避免的generics类型问题”是什么?

在“ 错误/警告 ”面板中设置Java编译器的首选项时,可以将Eclipse配置为“ 忽略不可避免的generics类型问题 ”。

Java中有哪些“不可避免的”generics类问题? 忽视这些是安全的吗? 它们什么时候出现?

从function的文档 :

启用后,即使编译器检测到程序员无法避免的generics类型问题,编译器也会发出错误或警告。 例如,类型可能被强制在其方法签名和返回类型中使用原始类型,因为它从超类型覆盖的方法被声明为首先使用原始类型。

所以,例如:

class Test { public void method(ArrayList list) { } } class TestSub extends Test { @Override public void method(ArrayList list) { // ^^^^^^^^^ // Complain on use of raw type or not? System.out.println("Overridden"); } } 

从Eclipse帮助页面 :

启用后,即使编译器检测到程序员无法避免的generics类型问题,编译器也会发出错误或警告。 例如,类型可能被强制在其方法签名和返回类型中使用原始类型,因为它从超类型覆盖的方法被声明为首先使用原始类型。

你永远不应该忽视警告。 他们在那里是有原因的。 尝试修复导致它们的一般情况。 有时它们是运行时安全的,但可以提高代码的可读性,有时它们真的是因为某些东西会让你的代码爆炸。

很多只是让你的代码更健壮/可读/可维护。 另外,当你(或其他人)需要修改代码时,忽略它们可能会使你的工作更加艰难。