我有以下变量
MyObj myObj = new MyObj();
String myString = "myPackage.MyObj";
其中MyObj
看起来像这样
package myPackage;
class MyObj {
private String one;
private String two;
}
如何检查myObj
是否是由字符串myString
表示的完整限定类名的实例?
答案 0 :(得分:14)
您可以使用Class#isInstance()
。
if (Class.forName(myString).isInstance(myObj)) {
// myObj is an instance of the class as specified by myString.
}
答案 1 :(得分:0)
我不确定我是否理解正确,但这可能会对您有所帮助:
Number n = 42; //Integer, try 42L (Long)
String type = "java.lang.Integer";
//if(n instanceof type) //?!?
if(Class.forName(type).isAssignableFrom(n.getClass())) {
//...
}