在接口的所有实现上调用基本函数

时间:2017-07-17 03:55:10

标签: java reflection interface

在具有反射和更少行的接口的所有实现上调用基函数的最佳方法是什么?

public interface BaseClass { public void doSomething();}

public class A implements BaseClass { 
     @Override
     public void doSomething () {
         System.out.println("doing Something in A"); 
     }
}

public class B implements BaseClass { 
     @Override
     public void doSomething () {
         System.out.println("doing Something in B"); 
     }
}

public class anotherClass {
    public static void main(final String[] args) {
       // get all the implementations of BaseClass;
       // for each implementation call doSomething();
    }
}

1 个答案:

答案 0 :(得分:1)

复杂:

  • 扫描所有类的完整类路径
  • 为每个类(除了JVM附带的类):检查类是否扩展了您的基类
    • 如果是 - 请查看是否可以实例化该类的对象以在
    • 上调用该函数

然后意识到这在现实世界中没有意义,并决定以不同的方式解决潜在的问题。