Java 接口定义和泛型。这应该有不同的定义吗?
我有一个班Java 接口定义和泛型。这应该有不同的定义吗?,java,oop,design-patterns,generics,Java,Oop,Design Patterns,Generics,我有一个班员工和一个班大楼 从类层次结构的角度来看,这些类彼此不相关。 我需要处理一组员工和构建对象,它们的结果将出现在不同的列表中。 所以我有一个接口,例如 public interface Processor{ public void process(String s, List<?> result); } 即不指定列表类型。 有办法解决这个问题吗?接口定义是否错误? 注意:这个接口是命令模式实现的一部分,这就是我的想法 interface Processor&
员工
和一个班大楼
从类层次结构的角度来看,这些类彼此不相关。
我需要处理一组
员工
和构建
对象,它们的结果将出现在不同的列表中。所以我有一个接口,例如
public interface Processor{
public void process(String s, List<?> result);
}
即不指定列表类型。有办法解决这个问题吗?接口定义是否错误?
注意:这个接口是
命令
模式实现的一部分,这就是我的想法
interface Processor<T>{
public void process(String s, List<T> result);
}
class BuildingProcessor implements Processor<Building>{
@Override
public void process(String s, List<Building> result) {
result.add(new Building());
}
}
class EmployeeProcessor implements Processor<Employee>{
@Override
public void process(String s, List<Employee> result) {
result.add(new Employee());
}
}
接口处理器{
公共作废处理(字符串s,列表结果);
}
类BuildingProcessor实现处理器{
@凌驾
公共作废处理(字符串s,列表结果){
结果.添加(新建筑());
}
}
类EmployeeProcessor实现处理器{
@凌驾
公共作废处理(字符串s,列表结果){
结果.添加(新员工());
}
}
仅供参考,您可以进一步限制该类型。例如,如果
Building
和Employee
类都实现了,比如说,可处理的
,那么您就可以执行接口处理器
这就是我的想法
interface Processor<T>{
public void process(String s, List<T> result);
}
class BuildingProcessor implements Processor<Building>{
@Override
public void process(String s, List<Building> result) {
result.add(new Building());
}
}
class EmployeeProcessor implements Processor<Employee>{
@Override
public void process(String s, List<Employee> result) {
result.add(new Employee());
}
}
接口处理器{
公共作废处理(字符串s,列表结果);
}
类BuildingProcessor实现处理器{
@凌驾
公共作废处理(字符串s,列表结果){
结果.添加(新建筑());
}
}
类EmployeeProcessor实现处理器{
@凌驾
公共作废处理(字符串s,列表结果){
结果.添加(新员工());
}
}
仅供参考,您可以进一步限制该类型。例如,如果
Building
和Employee
类都实现了,比如说,可处理的
,那么您可以执行接口处理器
1。发布整个错误消息。2.发布您的实际代码-而不是甚至无效的Java片段…@thkala:1)无错误消息。Eclipse编译器指示2)什么是无效java?1。这不是一个“迹象”。这是一条完整的编译器错误消息。2. <代码>公共流程(字符串s,列表结果)代码>不是有效的方法声明-没有返回类型…1。我已经发布了编译器错误2。我为此道歉。你是对的。我的宝贝。发布整个错误消息。2.发布您的实际代码-而不是甚至无效的Java片段…@thkala:1)无错误消息。Eclipse编译器指示2)什么是无效java?1。这不是一个“迹象”。这是一条完整的编译器错误消息。2. <代码>公共流程(字符串s,列表结果)代码>不是有效的方法声明-没有返回类型…1。我已经发布了编译器错误2。我为此道歉。你是对的。我的错