从名称检查类型的实例

时间:2014-03-05 17:40:22

标签: java class types instanceof

我想这样做:从名称中获取一个类型,如果消息则测试失败。 我认为它不起作用,因为clazz不是一种类型。但我该怎么做呢?

Class<?> clazz=Class.forName("com.android.test."+myEnum.toString());

if(myObj instanceof clazz)
    Assert.fail();

2 个答案:

答案 0 :(得分:2)

使用isInstance(http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html#isInstance%28java.lang.Object%29):

    Class<?> clazz=Class.forName("java.lang.String");
    String myObj = "string";        
    if(clazz.isInstance(myObj)){
       System.out.println("Its String Class");
    }

答案 1 :(得分:1)

Class<?> clazz=Class.forName("com.android.test."+myEnum.toString());

if(clazz.isAssignableFrom(myObj.class))
   Assert.fail();

请参阅其JavaDoc:http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html#isAssignableFrom(java.lang.Class)