java - 在需要接口(interface)时传递特定对象的列表。如何?

标签 java oop generics collections interface

我有一个SomeClass implements InterfaceA
我有一个方法:

public void doSomething(List<SomeClass) objects); 

在这个方法中我想调用:

public void doProcessing(List<InterfaceA) o); 

我该怎么做?
尽管 SomeClass isa InterfaceA 以下内容不起作用:

public void doSomething(List<SomeClass> objects){  

   doProcessing(objects);  

}

处理这个问题的标准方法是什么?

最佳答案

更改 doSomething 的签名来自

public void doSomething(List<SomeClass> objects);

public void doSomething(List<InterfaceA> objects);

甚至更好

public void doSomething(List<? extends InterfaceA> objects); (在这种情况下,您也应该更改 doProcessing)。

这意味着你的两种方法都与接口(interface)一起工作,只知道接口(interface)而不关心具体的实现。

关于java - 在需要接口(interface)时传递特定对象的列表。如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9374382/

相关文章:

java - 从 Java 运行 PowerShell 文件显示该文件没有 '.ps1' 扩展名

java - 与 Java 服务器和 Javascript 客户端建立 WebSocket 连接

java 8 将两个 int 数组的所有值相互求和

Angular2 - 只读属性

java - 泛型类型问题

通用 curry 函数的 typescript 类型

Java BigDecimal 舍入错误

java - API设计中如何引入特殊情况?

java - 这个 Java 模式叫什么?

scala - 当由子类型使用时,对泛型方法的类型参数进行泛型子类型化