为什么String.class =="test".class

lwp*_*ro2 3 java class

任何人都有任何想法,为什么== 标志适用于.class比较?

另外,getClass()方法的javadoc为

返回此Object的运行时类.返回的Class对象是由所表示的类的静态同步方法锁定的对象.

实际结果的类型是Class<? extends |X|>其中|X|是静态类型上其表达的擦除getClass()被调用.例如,此代码片段中不需要强制转换:

Number n = 0; 
Class<? extends Number> c = n.getClass();
Run Code Online (Sandbox Code Playgroud)

"静态同步方法锁定的对象"是什么意思?

Ign*_*ams 7

==进行身份比较,并且(通常)每个类只有一个副本."由静态同步方法锁定的对象"意味着它所说的内容; 它是声明为static和synchronized的方法将尝试锁定的对象.