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
  }
显然,这是不可能的。如何使用这种类型的不可编辑类型层次结构实现设计良好的代码?