繁体   English   中英

Java从用户那里获取对象引用的名称

[英]Java getting name of object reference from the user

如何询问用户类的名称,并根据用户类的名称创建一个对象? 我知道以下代码有错误,但是我希望它能给出一个我想做的想法。

String input = JOptionPane.showInputDialog(null, "Enter the name of object?”); 
Stock input = new Stock(“GOO”,  538);

如果从用户获取类的名字,那么你首先需要尝试加载使用静态方法的Class.forName(字符串名称)的类。

如果类加载器可以找到该类(意味着它位于运行时类路径中),那么您将获得Class对象的实例,并可以在该实例上调用newInstance()方法。

请注意,要做到这一点,你必须确保类有一个无参数的构造函数,你将无法参数传递给newInstance()方法。

创建实例后,可以将其强制转换为已知接口,也可以使用反射查找其他方法来调用设置数据。

这应该做。

Class.forName(input).newInstance();

你应该看看反射

无论如何,如果您允许我提出这样的问题,您为什么需要这样做? 我的意思是很少需要反射,但是更多的是一种不良的编程模式,只应在精确的情况下使用(例如,使用注释自动填充实例)。

让我们知道有关您的问题的更多信息,也许我们可以找到更好的解决方案。

据我所知,您正在做的是创建Stock对象并将其命名为输入,据我所知您无法基于字符串创建对象。 但是,如果知道要输入的对象,则可以执行以下操作:

String input = JOptionPane.showInputDialog(null, "Enter the name of object?”); 
Switch (input){
case String: String string  = new String();
case int: int Int = new int();

等等。 如果这不是您想要做什么的想法,请告诉我。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM