接受多种类型作为单个参数的 Java 方法

标签 java generics types

假设我有两个自定义类和一个方法,如下所示:

class A {
  public void think() {
    // do stuff
  }
}

class B {
  public void think() {
    // do other stuff
  }
}

Class C {
  public void processStuff(A thinker) {
    thinker.think();
  }
}

有没有办法将processStuff()写成这样(只是说明):

public void processStuff({A || B} thinker) {...}

或者,换句话说,是否有一种方法可以编写一个具有接受多种类型的参数的方法,以避免多次键入 processStuff() 方法?

最佳答案

定义您想要在接口(interface)中实现的行为,让 AB 实现该接口(interface),并声明您的 processStuff 作为参数接口(interface)的实例。

interface Thinker {
    public void think();
}

class A implements Thinker {
    public void think() { . . .}
}

class B implements Thinker {
    public void think() { . . .}
}

class C {
    public void processStuff(Thinker thinker) {
        thinker.think();
    }
}

关于接受多种类型作为单个参数的 Java 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13978936/

相关文章:

types - 在SML的这段代码中 “node”在做什么?

c++ - 没有标识符时如何读取复杂的 C++ 类型声明?

java - 是否真的有必要删除完整的监听器 Firebase 身份验证?

java - 为什么我无法使用 'outer' catch 捕获嵌套 catch 子句中抛出的异常?

c# - 获取 System.Type 并返回该类型的 IEnumerable

swift - 任何类型的可选扩展

types - 使用显式类型将对象中的方法的可见性限制为定义它的模块

java - 按需将 Neo4J 加载到内存中以进行繁重的计算

java - 方法在通用返回对象中不可用

java - Java 中的通配符 Generic 和 <? super T> 意思,下界或上界