DefaultListModel
(タイプString
)の拡張バージョンを作成しようとしていますが、これはLogItem
という名前のオブジェクトを受け取り、自動的に 'その情報を使用して、関連する要素を設定するためにどのデータを使用すべきかを推測する。私のコードでJavaの匿名ジェネリッククラスからオーバーロードされたメソッドを呼び出す
それは次のようになります。クラスで
public static DefaultListModel<String> log = new DefaultListModel<String>(){
public void addElement(LogItem logItem){
super.addElement("[" + logItem.getTimestamp() + "] " + logItem.getEvent());
}
};
以降:
log.addElement(new LogItem(event));
しかし、コードのこれら二つの部分の、後者はコンパイル時エラーを与える:
Error:(196, 32) java: incompatible types: com.example.LogItem cannot be converted to java.lang.String
私は何らかの理由で、私が匿名クラスで作成したオーバーロードされたメソッドにアクセスできないaddElement(LogItem logitem){...}
)。
私は何かが欠けているはずですが、どうして私はオーバーロードされたクラスを使用できないのでしょうか?
は、 'log'の宣言された型を変更できないように見えるので、オプション1のように見えます。 – rptmat57
ありがとう!私は3番目のオプションを使用しました。私はちょうどその_one_オーバーロードされたメソッドを追加したいと思って、あなたのソリューションは動作します!乾杯! –