我有这个类(称为child
),它从Java中的Swing
库扩展了JComboBox类。现在,当我创建child
的对象并尝试通过传递addItem(Object)
来调用方法String
时,我收到以下警告:
Type safety: The method addItem(Object) belongs to the raw type JComboBox. References to generic type JComboBox<E> should be parameterized.
调用此方法的正确方法是什么?我无法使用child
的泛型类型实例化<String>
,因为child
不是通用的;我不知道如何做到这一点。任何帮助将不胜感激。
PS。更改child
的内容不是一种选择。
答案 0 :(得分:0)
您想要的是让您的孩子成为JComboBox<String>
的孩子,而不仅仅是JComboBox
。这将停止弹出的小警告。
示例:
public class Child extends JComboBox<String>{
}
执行此操作时,所有通用方法,字段等现在都是String
而不是Object
。
编辑:
我看到你说你不能改变孩子班级。这使事情变得相当困难。
实际上没有直接的方法,即使是变通办法最终仍会显示此警告。您可以使用一个选项(我可以看到)在产生警告的代码上方使用@SuppressWarnings("unchecked")
注释。这将阻止警告显示。