我:的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
我明白你可以抑制警告,但這對我來說並不理想。如果我這樣做了所有的編譯器警告,那麼讓我們只是說它不會好。如果可能,找出原因並妥善解決它總是更好的。 –