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

是否有可能在此方法中获取调用静态方法的对象?

我有这个代码:

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

我可以在方法foo()获取实例吗?

首先,您的代码不如程序员好。

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

推荐方法:

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

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

不,你不能。 因为foo()被声明为static 。 所以你不能在该方法中使用它,因为它包含对调用该方法的对象的引用。

根据定义, static方法没有实例对象(静态方法不对特定对象进行操作,它们仅在命名空间的类中定义) – 所以没有

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

 A级{
     static void foo(一个theObject){
     }
 }
 A =新A();
 A.foo的(a);

并且最好不要从对象的实例中调用静态方法

没有; 这就是static意味着什么。
编译器实际上完全忽略了实例。

使用实例方法。