当前位置: 首页 > 面试题库 >

如何基于Java中的接口对象获取实现类名称

宋成天
2023-03-14
问题内容

我想从我的接口对象获取实现类名称-有什么方法可以做到这一点?

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

我想弄清楚它将要调用的特定方法。


问题答案:

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

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());
  }
}


 类似资料:
  • 问题内容: 范例: 我想从引用变量中获取接口名称。有没有办法做到这一点? 问题答案: 使用反射,您可以调用返回您的类实现的方法。 为了得到名字

  • 问题内容: 我知道该类的名称,说 “ MyClass”, 并且想检索该对象。 MyClass.class 供将来参考。有没有办法做到这一点? 我已经浏览了整个网络,但发现与之相关的大多数内容都与有关,我认为这不适合我的情况。我不想初始化一个类,而只是获取一个类对象以备将来使用。 编辑:关于此的第一个答案: 我已经检查了该方法,但我认为这也应该初始化该类。现在,我可以使用完整参数来调用它,并传递给第

  • 我想得到由接口实现的子类名。例如 在我的代码中,我声明了接口A,并将值设置为其中一个类。所以我有这样的: 现在我想得到当前的子类名称,比如B、C或其他什么,但我不想用instanceof,因为我有很多子类,这使得代码不必要太长。我基本上是在寻找这个,但是getChild()当然不存在。 提前谢谢!

  • 问题内容: 像这样,A a = new A(),如何获得a的名称?(从a中获得字符串“ a”)? 有一个JPanel包含一些JTextField,一个映射包含所有JTextField的名称(变量的名称)。我想将地图的值设置为JTextFields的文本。 跨过getName()方法,我得到了null -_-我知道getName()方法不用于获取变量名。我正在使用netbeans进行Java swi

  • 本文向大家介绍Java动态获取实现某个接口下所有的实现类对象集合,包括了Java动态获取实现某个接口下所有的实现类对象集合的使用技巧和注意事项,需要的朋友参考一下 最近有个需求,我需要获取所有同一类型的定时任务的对象,并自动执行。 我想的方案是:直接获取某个接口下面所有的实现类的对象集合,方便以后只需要 实现这个接口,就能自动被加载执行。话不多说,说说我的实现方案。 开始想着用反射自己写一个工具类

  • 我对类上的接口实现的理解是,接口类型引用实现接口的类的对象。 但是当我研究下面的代码片段在上面的代码中使用时… GetConnection(host,username,password)返回对对象的引用(类型为Connection),但DriverManager类中没有实现接口。谁能澄清我的这个疑问..?还是我漏掉了什么? 下面的代码段不能得到相同的东西 createStatement()应该返回