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

如何从Java中的类名称获取类对象

颛孙建业
2023-03-14
问题内容

我知道该类的名称,说 “ MyClass”, 并且想检索该Class对象。 MyClass.class
供将来参考。有没有办法做到这一点?

我已经浏览了整个网络,但发现与之相关的大多数内容都与有关ClassLoader,我认为这不适合我的情况。我不想初始化一个类,而只是获取一个类对象以备将来使用。

编辑:关于此的第一个答案:

我已经检查了该forName()方法,但我认为这也应该初始化该类。现在,我可以使用完整参数来调用它,并传递false给第二个参数,但是第三个必须是null或什么?

Class.forName("MyClass", false, null);

回报MyClass.class

实际上,我想做的是将与Class对象关联的字符串ID数组替换为从中自动获取类对象的ID数组,以摆脱一些手动工作:)

感谢您的快速解答,也很抱歉没有在此之前提及。


问题答案:

您可以使用:

Class c = Class.forName("com.package.MyClass");

然后实例化一个对象:

Object obj = c.newInstance();

编辑:这只是最简单的用例。如注释中所示,您将需要考虑初始化过程引发的构造函数参数和异常。该对JavaDoc中newInstance有所有的细节。



 类似资料:
  • 问题内容: 在这件事上,我需要一些帮助, 例: 基本上是这种情况。我的问题是方法如何知道谁在调用它? 编辑:基本上我正在尝试做一个数据库层,并且在我将创建一种将生成SQL语句的方法。通过获取调用的所有属性的值来动态生成此类语句。 问题答案: 最简单的方法如下: 但实际上,除非出于某些日志记录目的,否则不需要这样做,因为这是一项相当昂贵的任务。这是什么,你认为这是解决方案?我们可能会提出更好的建议。

  • 问题内容: 有什么解决方案来获取对象的函数名称? -没有有关或的信息。有可能得到其中之一吗? 问题答案: 获取对象的构造函数,然后检查其name属性。 返回“ myClass”。

  • 问题内容: 在Java中,我可以在抽象类中获取扩展它的具体类的实例吗? 问题答案: 是的,您可以致电。这将为您提供运行时类型为的实例。 如果只需要类的名称,则可以使用。 最后,还有和。我一直使用前者来打印可读的类名以记录文件等。

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

  • 问题内容: 我想从我的接口对象获取实现类名称-有什么方法可以做到这一点? 我知道我可以用来检查实现对象,但是在我的应用程序中,有将近20到30个实现相同接口的类可以重写一个特定方法。 我想弄清楚它将要调用的特定方法。 问题答案: 只需使用-它会返回用于实现接口的运行时类:

  • 问题内容: 是否有一个JavaScript的等效的Java的? 问题答案: 是否有与Java等效的JavaScript ? 没有 。 名称为。不论类别如何,的类别名称均为。ES2015环境中的内置构造函数具有正确的属性;例如是。 但是,这里有各种各样的骇客,它们都以一种或另一种方式下降: 这是一种可以满足您需要的技巧-请注意,它会修改Object的原型,而人们对此并不满意(通常是出于充分的理由)