从输入字符串中指示数据类型?

时间:2011-01-13 14:28:57

标签: java

例如我有一个字符串输入“int”,我可以在该输入上声明一个变量吗? (请不要切换检查)。我的意思是这样的(伪代码)或类似的东西:

 String str="int"; 
 new (variable_name,"int");

//使用int数据类型创建新变量。

3 个答案:

答案 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. 

}