我:的Java Swing - 如何处理仿制药的ActionListener
class CustomerActionListener implements ActionListener
{
@Override
public void actionPerformed(ActionEvent event)
{
JComboBox cb = (JComboBox)event.getSource();
.. do something
}
}
导致在JDK7以下编译器警告:
的JComboBox是原始类型。引用泛型类型的JComboBox应该是参数
我试图把它给参数使得:
JComboBox<String> cb = (JComboBox<String>)event.getSource();
但是,这仍然留下了以下编译器警告:
类型安全:未经检查的投从Object到JComboBox
因此我不确定如何消除编译器警告...
是否有一个instanceof检查的帮助?即使你知道你总是会在最后得到一个JComboBox。 – Rex
我不认为你“编码”解决问题的解决方案。你可以,如何抑制警告。看看http://stackoverflow.com/questions/593996/how-to-suppress-java-compiler-warnings-for-specific-functions。问题是编译器看着'ActionEvent.getSource'并且说“我有一个对象,而在理论上,你可以投我,你试图让我可能无法工作” – MadProgrammer
我明白你可以抑制警告,但这对我来说并不理想。如果我这样做了所有的编译器警告,那么让我们只是说它不会好。如果可能,找出原因并妥善解决它总是更好的。 –