我使用反射来调用方法:
method.invoke(someObject, null);
问题是,我想使用此方法返回的值,而不必事先知道它的数据类型。我知道字符串变量中的数据类型,比如说
String type = "String";
是否可以做一些与此相同的事情 -
type variable = method.invoke(someObject, null)
答案 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;
}
但我建议不要走这条路。必须有一些更好的方法来实现你想要的结果。