私はクラスEmployee
とクラスBuilding
を持っています。
これらのクラスは、クラス階層の観点からは互いに関連していません。
Employee
とBuilding
のオブジェクトを処理する必要があり、その結果は別のリストになります。
です。インターフェース定義とジェネリック。これは別に定義する必要がありますか?
public interface Processor{
public void process(String s, List<?> result);
}
アイデアは、文字列がs
Employee
又はBuilding
と何らかの処理が結果リストのいずれかEmployee
オブジェクトまたはBuilding
オブジェクトに追加した後、実装のいずれかに関連する情報を運ぶことです。
とBuildingProcessor
の2つの実装があります。
コードのどこかで、これらのいずれかへの参照があり、List<Employee>
またはList<Building>
のいずれかをprocess
メソッドに渡します。
問題は、コードがコンパイルされないことです。
EmployeeProcessor
内側:result.add(new Employee(a,b,c,d));
私が手:
方法は(?キャプチャ#2 - の)を追加するタイプのリストに、私は私が理解できると思い引数
には適用 ではありません問題はありますが、インターフェイスを次のように変更する必要はありません。
public interface Processor{
public process(String s, List result);
}
eリストのタイプを指定しないでください。
この問題を回避する方法はありますか?インタフェース定義が間違っていますか?
注:このインターフェイスはCommand
パターンの実装の一部です
と入力します。1.エラーメッセージ全体を投稿します。 2.実際のコードを投稿してください。有効なJavaコードではないスニペットではありません。 – thkala
@thkala:1)エラーメッセージはありません。 Eclipseコンパイラの表示2)有効なjavaではないということはどういう意味ですか? – Cratylus
1.これは「表示」ではありません。これは本格的なコンパイラのエラーメッセージです。 2. public process(String s、List result);は有効なメソッド宣言ではありません。戻り値の型はありません。 – thkala