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