java - Java中如何根据接口(interface)对象获取实现类名

标签 java overriding

我想从我的接口(interface)对象中获取实现类名——有什么方法可以做到这一点吗?

我知道我可以使用 instanceof 来检查实现对象,但在我的应用程序中有将近 20 到 30 个类实现相同的接口(interface)来覆盖一个特定的方法。

我想弄清楚它将调用哪个特定方法。

最佳答案

只需使用 object.getClass() - 它将返回用于实现您的接口(interface)的运行时类:

public class Test {

  public interface MyInterface { }
  static class AClass implements MyInterface { }

  public static void main(String[] args) {
      MyInterface object = new AClass();
      System.out.println(object.getClass());
  }
}

关于java - Java中如何根据接口(interface)对象获取实现类名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24992959/

相关文章:

java - Java继承和重写的概念有困难

java - 如何在 Java 中使用 xpath 编辑/更新 XML 文件中的节点

java - 使用传输编码改造客户端和响应 : chunked

Java ExecutorService 任务生成

java - 具有相同方法名称的两个接口(interface),当我覆盖时会发生什么?

delphi 重载、重写、虚方法

Java,匿名内部类定义

java - 在 JDialog 中使用自定义图标实现最小化功能的最简单方法

java - 使用 this.getClass().getDeclaredField 方法时出现 NullPointerException

c++ - 重写关键字在编译时抛出错误