Java多类型方法参数?
2022-09-02 02:42:31
我想知道是否有可能要求java方法参数是有限类型集中的任何类型。例如 - 我正在使用一个库,其中两个(或多个)类型具有通用方法,但它们在类型层次结构中的最低公共祖先是Object。我在这里的意思是:
public interface A {
void myMethod();
}
public interface B {
void myMethod();
}
...
public void useMyMethod(A a) {
// code duplication
}
public void useMyMethod(B b) {
// code duplication
}
我想避免代码重复。我想到的是这样的:
public void useMyMethod(A|B obj){
obj.myMethod();
}
Java中已经存在类似类型的语法。例如:
try{
//fail
} catch (IllegalArgumentException | IllegalStateException e){
// use e safely here
}
显然,这是不可能的。如何使用这种类型的不可编辑类型层次结构实现设计良好的代码?