Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 接口定义和泛型。这应该有不同的定义吗?_Java_Oop_Design Patterns_Generics - Fatal编程技术网

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。我为此道歉。你是对的。我的错