2011-06-06 63 views
3

我有以下變量如何檢查給定的對象是否是String中給出的類名的實例?

MyObj myObj = new MyObj(); 
String myString = "myPackage.MyObj"; 

其中MyObj這個樣子的

package myPackage; 

class MyObj { 
    private String one; 
    private String two; 
} 

我如何檢查是否myObj是完全合格的類名的實例中的String myString代表?

+0

你的意思'MyObj中的instanceof MyObj' ??? – kay 2011-06-06 21:18:32

+1

我們都相信OP意味着'instanceof type',其中type是以String的形式給出的。這是我們堅持的版本:-)。 – 2011-06-06 21:22:13

+0

@Tomasz:授予。 ;) – kay 2011-06-06 23:03:37

回答

11

您可以使用Class#isInstance()

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

不知道我理解正確,但是這可能會幫助您:

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