我想这样做:从名称中获取一个类型,如果消息则测试失败。 我认为它不起作用,因为clazz不是一种类型。但我该怎么做呢?
Class<?> clazz=Class.forName("com.android.test."+myEnum.toString());
if(myObj instanceof clazz)
Assert.fail();
答案 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)