Java 如何检查给定对象是否是字符串中给定类名的实例?

Java 如何检查给定对象是否是字符串中给定类名的实例?,java,instanceof,Java,Instanceof,我有以下变量 MyObj myObj = new MyObj(); String myString = "myPackage.MyObj"; 其中MyObj如下所示 package myPackage; class MyObj { private String one; private String two; } 如何检查myObj是否是由字符串myString表示的完整限定类名的实例?您可以用于此操作 if (Class.forName(myString).isInsta

我有以下变量

MyObj myObj = new MyObj();
String myString = "myPackage.MyObj";
其中
MyObj
如下所示

package myPackage;

class MyObj {
    private String one;
    private String two;
}
如何检查
myObj
是否是由字符串
myString
表示的完整限定类名的实例?

您可以用于此操作

if (Class.forName(myString).isInstance(myObj)) {
   // myObj is an instance of the class as specified by myString.
}

不确定我是否正确理解您,但这可能会帮助您:

Number n = 42;      //Integer, try 42L (Long)
String type = "java.lang.Integer";
//if(n instanceof type)  //?!?
if(Class.forName(type).isAssignableFrom(n.getClass())) {
    //...
}

你的意思是
myObj的instanceof myObj
??我们都相信OP的意思是
instanceof type
,其中type被指定为
String
。这就是我们坚持的版本:-)。