gpt4 book ai didi

java - 用接受字符串参数的构造函数实例化一个类对象?

转载 作者:IT老高 更新时间:2023-10-28 11:53:37 24 4
gpt4 key购买 nike

我想从它的 Class 对象实例化一个对象,使用接受单个 String 参数的构造函数。

这是一些接近我想要的代码:

Object object = null;
Class classDefinition = Class.forName("javax.swing.JLabel");
object = classDefinition.newInstance();

但是,它实例化了没有文本的 JLabel 对象。我想使用接受字符串作为初始文本的 JLabel 构造函数。有没有办法从 Class 对象中选择特定的构造函数?

最佳答案

Class.newInstance 调用无参数构造函数(不带任何参数的构造函数)。为了调用不同的构造函数,你需要使用反射包(java.lang.reflect)。

像这样获取一个Constructor实例:

Class<?> cl = Class.forName("javax.swing.JLabel");
Constructor<?> cons = cl.getConstructor(String.class);

getConstructor 的调用指定您需要采用单个String 参数的构造函数。现在创建一个实例:

Object o = cons.newInstance("JLabel");

你已经完成了。

附:仅将反射用作最后的手段!

关于java - 用接受字符串参数的构造函数实例化一个类对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3574065/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com