私は現在、いくつかの古いコードのリファクタリングに取り組んでおり、Swing Application Framework クラスの Generics を適切に使用する方法を理解していないスニペットを見つけましたTaskListener.Adapter
。
これは関連するコード スニペットです。
public void executeTask(Task<?, ?> task, boolean handleException) {
task.addTaskListener(new TaskListener.Adapter() { /* <-- Two warnings here */
@Override
public void failed(TaskEvent event) { /* ... */ }
});
getContext().getTaskService().execute(task);
}
1. まず、警告を取り除きたい。「チェックされていない変換」と「生の型が見つかりました」。コードを に変更しようとしましたが、 「特定の型には適用できません」new TaskListener.Adapter<Object, Object>
というエラーが表示されます。宣言のため、ここで使用できるのは生の型だけですか?(Task<?, ?>
failed
2. のメソッドの宣言はorg.jdesktop.application.TaskListener.Adapter
ですpublic void failed(TaskEvent<Throwable> event)
が、コードを次のように変更しようとすると:
@Override
public void failed(TaskEvent<Throwable> event) { /* ... */ }
「メソッドはスーパータイプのメソッドをオーバーライドしません」というメッセージが表示されます。ここでも raw を使用する必要がありTaskEvent
ます。何故ですか?
ご協力ありがとうございました。
編集: Jarvana のTaskListenerの Javadoc 。