tôi có:Java Swing - Làm thế nào để xử lý Generics trong ActionListener
class CustomerActionListener implements ActionListener
{
@Override
public void actionPerformed(ActionEvent event)
{
JComboBox cb = (JComboBox)event.getSource();
.. do something
}
}
nào gây ra cảnh báo trình biên dịch sau trong JDK7:
JComboBox là một loại nguyên liệu. Tài liệu tham khảo để chung loại JComboBox nên tham số
Tôi đã cố gắng để parameterize nó để sao cho:
JComboBox<String> cb = (JComboBox<String>)event.getSource();
Nhưng điều này vẫn còn để cảnh báo trình biên dịch như sau:
Loại an toàn: không đánh dấu cast từ đối tượng đến JComboBox
Vì vậy, tôi không chắc chắn cách loại bỏ cảnh báo trình biên dịch ...
Trường hợp có kiểm tra trợ giúp không? Ngay cả khi bạn biết bạn sẽ luôn luôn nhận được một JComboBox ở cuối. – Rex
Tôi không nghĩ rằng bạn "mã" một giải pháp để giải quyết vấn đề. Bạn có thể, bao giờ, ngăn chặn các cảnh báo. Hãy xem http://stackoverflow.com/questions/593996/how-to-suppress-java-compiler-warnings-for-specific-functions. Vấn đề là trình biên dịch xem xét 'ActionEvent.getSource' và nói" Tôi có một đối tượng và trong khi về lý thuyết, bạn có thể truyền cho tôi, những gì bạn đang cố gắng truyền cho tôi có thể không hoạt động " – MadProgrammer
Tôi hiểu rằng bạn có thể chặn cảnh báo, nhưng điều đó ít hơn lý tưởng đối với tôi. Nếu tôi đã làm điều đó cho tất cả các cảnh báo trình biên dịch, chúng ta hãy chỉ nói rằng nó sẽ không được tốt. Nó luôn luôn là tốt hơn để tìm hiểu lý do tại sao và đúng cách giải quyết nó nếu có thể. –