反射:在静态方法中获取调用对象



是否可以在此方法中获得调用静态方法的对象?

我有这样的代码:

class A{
    static void foo(){
    }
}
A a = new A();
a.foo();

我可以在方法foo()中获得实例a吗?

首先,作为一个程序员,你的代码不太好。

这是因为静态方法是类级方法,应该在没有任何类实例的情况下调用。

推荐方法:

class A{
    static void foo(){
    }
}
A.foo();

我可以在方法foo()中获得实例a吗?

不行。因为foo()被声明为静态的。因此,您不能在该方法中使用this,因为this包含对调用该方法的对象的引用。

根据定义,static方法没有实例对象(静态方法不操作特定对象,它们在类中定义纯粹是为了命名空间)——所以没有

不可能…静态方法没有引用,你必须通过它重新实现方法:

<>之前A类{静态void foo(A theObject){}}A = new A();A.foo(一个);之前最好不要从对象的实例中调用静态方法

不;这就是static的意思。
编译器实际上完全忽略了实例。

使用实例方法

相关内容

  • 没有找到相关文章

最新更新