例如我有一个字符串输入“int”,我可以在该输入上声明一个变量吗?
(请不要切换检查)。我的意思是这样的(伪代码)或类似的东西:
String str="int";
new (variable_name,"int");
//使用int数据类型创建新变量。
答案 0 :(得分:2)
你可以这样做:
String className = "MyClass";
Object obj = Class.forName(className).newInstance();
但它不适用于原始类型。
答案 1 :(得分:0)
实际上,Java是强类型的,如果要对它们执行任何有用的操作,则必须在编译时知道所有变量的类型。
例如,你可以这样做;
String str = "java.lang.Integer";
Class clazz = Class.forName(str);
Object o = clazz.newInstance();
..它将为您提供Object
o,其类型在运行时由String
str的值确定。虽然没有先将它转换为实际类型,但是在编译时必须知道它,所以你不能对它做任何有用的事情。
答案 2 :(得分:0)
如果不使用原始类型,您将使用基于对象的类的规范名称,您可以尝试这样做
public Object loadClass(String className) {
return Class.forName(className).newInstance(); //this throw some exceptions.
}