我可以使用字符串变量作为数据类型在java中创建其他变量

时间:2015-05-21 14:56:49

标签: java reflection

我使用反射来调用方法:

method.invoke(someObject, null);

问题是,我想使用此方法返回的值,而不必事先知道它的数据类型。我知道字符串变量中的数据类型,比如说

String type = "String";

是否可以做一些与此相同的事情 -

type variable = method.invoke(someObject, null)

2 个答案:

答案 0 :(得分:1)

使用instanceof检查对象类型。

Object o = method.invoke(...);
if(o instanceof Integer) {
    // Integer logic...
}
if(o instanceof YourType) {
    // YourType logic...
}
// and so on

答案 1 :(得分:0)

也许这样的事情对你有用:

if(type.equals("String"){
    String o = (String) returnedObject;
} else if(type.equals("Integer")){
    Integer o = (Integer) returnedObject;
}

但我建议不要走这条路。必须有一些更好的方法来实现你想要的结果。