您的位置:首页 > 其它

obj.getClass().getName()==String.class.getName()和obj.getClass==String.class的区别

2017-09-20 11:42 435 查看
obj.getClass().getName()==String.class.getName()都是获取的全限定类名进行比较。结果为true,

obj.getClass==String.class是进行class比较,记过也为true

如果将String换成其他类型有接口或者继承的话,结果就不一定了。

@org.junit.Test
public void testName5() throws Exception {
String aString="666";
String name = aString.getClass().getName();
String name2 = String.class.getName();
System.out.println(name);
System.out.println(name2);
System.out.println(name==name2);
Class<? extends String> class1 = aString.getClass();
System.out.println(class1);
System.out.println(class1==String.class);
}

打印结果:
java.lang.String

java.lang.String

true

class java.lang.String

true

如果是同一个ClassLodader结果是无误的。2种方式皆可

如果不同的ClassLodader就需要注意了。使用obj.getClass==String.class是正确的。如果使用obj.getClass().getName()==String.class.getName()就不一定会得到想要的结果
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐