我有一個類Employee
和類Building
。
這些類從類層次結構角度來看並不相互關聯。
我需要處理一堆Employee
和Building
對象,它們的結果將以不同的列表結束。
所以我有和接口,例如接口定義和泛型。這應該以不同的方式定義?
public interface Processor{
public void process(String s, List<?> result);
}
的想法是,在字符串s
攜帶關於任一種Employee
或Building
和之後一定的處理添加到結果列表中任一一個Employee
對象或對象Building
執行信息。
Processor
有兩種實現方式,一種是EmployeeProcessor
和BuildingProcessor
。
代碼中的某處我可以參考其中任何一個,並且我將List<Employee>
或List<Building>
傳遞給process
方法。
問題是代碼不能編譯。
當我做裏面的EmployeeProcessor
:result.add(new Employee(a,b,c,d));
我得到:
的方法在類型列表中添加(?捕獲#2的)是不是 適用於參數
我想我能理解問題,但我不想將接口更改爲:
public interface Processor{
public process(String s, List result);
}
iee不指定列表的類型。
有沒有辦法解決這個問題?接口定義是否錯誤?
注意:這個接口是Command
模式的一部分
1.發佈整個錯誤消息。 2.發佈你的實際代碼 - 不是甚至不是有效的Java代碼片段... – thkala
@thkala:1)沒有錯誤消息。 Eclipse編譯器指示2)你是什麼意思,無效的Java? – Cratylus
1.這不是一個「跡象」。這是一個成熟的編譯器錯誤消息。 2.'public process(String s,List result);'不是有效的方法聲明 - 沒有返回類型... – thkala