Java中.class究竟返回了什么?

nit*_*112 3 java class

为什么不允许通过.class返回的类引用调用静态方法?但是,如果使用类名直接调用静态方法,它可以正常工作.如下例所示.他们不平等吗?

package typeinfo;

class Base {
    public static void method1() {
        System.out.println("Inside static method1");
    }
    public void method2() {
        System.out.println("Inside method2");
    }
}
public class Sample {
    public static void main(String[] args) {
        Class<Base> b = Base.class;
        // Works fine
        Base.method1();
        // Gives compilation error: cannot find symbol
        // Is below statement not equal to Base.method1() ?
        b.method1();
    }
}
Run Code Online (Sandbox Code Playgroud)

Jes*_*per 5

.class返回一个类的实例java.lang.Class- 并且不,Class<Base>不一样Base.

Class java.lang.Class主要在使用Reflection API时使用.