Test类里this.getClass()和Test.class有什么区别?

解决方案 »

  1.   

    一般来说它们都返回Test这个类,没有区别但是在继承的状态下
    public class Test
      public void m() { 
         this.getClass();
      }
    }public class SubTest extends Test {
    }
    如果调用new SubTest().m();则上述的this.getClass是返回SubTest而不是Test的
      

  2.   

    “getClass是运行时确定的”原因在于
    this.getClass()调用的是方法
    Test.class调用的是属性
      

  3.   

    Test.class不是属性,而叫做“类字面量”,因class是关键字。
    一个编译时确定,一个运行时确定。
      

  4.   

    study
    大家还有补充的吗?