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()就不一定会得到想要的结果
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()就不一定会得到想要的结果
相关文章推荐
- java零碎要点---class()、getClass()、Class.forName()、getClassLoader()的区别和联系--又不详细的地方求补充
- 类名.class, class.forName(), getClass()区别
- 在java开发中关于class.getResourceAsStream(String name)与 class.getClassLoader().getResourceAsStream(String
- Class的getCanonicalName和getSimpleName getName的区别与应用
- object_getClass(obj)与[obj class]的区别
- java中Class对象详解和类名.class, class.forName(), getClass()区别
- java中类名.class, class.forName(), getClass()区别
- getElementById,getElementsByTagName,getElementsByName,getElementsByClassName的区别
- className.class.getResourceAsStream()与ClassLoader.getSystemResourceAsStream() 的区别
- 在Java中,关于.Class()与.getCalss与.getClass().getName()的区别
- Java中反射机制和Class.forName、实例对象.class(属性)、实例对象getClass()的区别
- getClass()和getSimpleName()的区别和作用
- Java中反射机制和Class.forName、实例对象.class(属性)、实例对象getClass()的区别
- .Class, Class.forName, .getClass()的区别
- Java中反射机制和Class.forName、实例对象.class(属性)、实例对象getClass()的区别
- 类名.class, class.forName(), getClass()区别
- Java中反射机制和Class.forName、实例对象.class(属性)、实例对象getClass()的区别
- Method Class.getMethod(String name, Class... parameterTypes)
- Java中反射机制和Class.forName、实例对象.class(属性)、实例对象getClass()的区别
- 类名.class, class.forName(), getClass()区别