在静态java方法中访问类

时间:2012-03-10 11:25:38

标签: java static

我们有自己注册'Handler'的子类,我们想通过Subclass.me()访问它们。在Java中是否有类似的东西:?

public class Handler{
static Vector<Handler> register=new Vector<Handler>();
public static Handler me() {
        return register.get( this.class);// TODO
}
}

public class SubClass extends Handler{
     SubClass(){register.add(this);}// OK
}

澄清问题:在调用静态java方法时是否可以检索CLASS? this.class显然不起作用,因为'this'不可用。

2 个答案:

答案 0 :(得分:4)

静态方法属于该类。他们不能被覆盖。

MyClass.myStaticMethod()

是访问静态方法的唯一正确方法。

答案 1 :(得分:0)

在java中,您不能对非静态方法/变量进行静态引用。所以,

  • 如果要访问非静态方法/变量,则必须 首先创建一个类的实例。
  • 如果您要访问静态方法/变量,那么您可以 通过类名直接访问它而不创建 实例

因为静态方法和变量属于Class而不属于Instance,而非静态方法和变量属于Instance而不属于Class。