我有一堂课Employee
和一堂课Building
。
从类层次结构的角度来看,这些类彼此不相关。
我需要处理一堆Employee
和Building
对象,它们的结果最终会出现在不同的列表中。
所以我有和接口,例如
public interface Processor{
public void process(String s, List<?> result);
}
这个想法是字符串s
携带与 anEmployee
或 a相关的信息,并且经过一些处理后的实现将对象或对象Building
添加到结果列表中。一个 is和一个
有 2 种实现。
在代码中的某处,我得到了对其中任何一个的引用,然后我将 a或 a传递给该方法。 Employee
Building
Processor
EmployeeProcessor
BuildingProcessor
List<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
模式实现的一部分