クラスEmployeeとクラスがありBuildingます。
これらのクラスは、クラス階層の観点からは相互に関連していません。
たくさんのオブジェクトを処理する必要がありEmployee、Buildingそれらの結果は異なるリストになります。
だから私は持っていて、例えばインターフェース
public interface Processor{
public void process(String s, List<?> result);
}
文字列には、またはのsいずれかに関連する情報が含まれ、何らかの処理が行われた後の実装によって、オブジェクトまたはオブジェクトのいずれかが結果リストに追加されます。1つのisとa
の2つの実装があります。
コードのどこかで、これらのいずれかへの参照を取得し、aまたはaのいずれかをメソッドに渡します。 EmployeeBuildingEmployeeBuildingProcessorEmployeeProcessorBuildingProcessorList<Employee>List<Building>process
問題は、コードがコンパイルされないことです。
私が例えば内部で行うときEmployeeProcessor:result.add(new Employee(a,b,c,d));
私は得る:
List型のメソッドadd(capture#2-of?)は、引数には適用できません。
問題は理解できると思いますが、インターフェイスを次のように変更したくありません。
public interface Processor{
public process(String s, List result);
}
つまり、リストのタイプを指定しません。
この問題を回避する方法はありますか?インターフェイスの定義が間違っていますか?
注:このインターフェースはCommandパターンの実装の一部です