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

Java 反射:在静态方法中获取调用对象,java,reflection,static,static-methods,Java,Reflection,Static,Static Methods,是否可以获取在此方法中调用静态方法的对象 我有以下代码: class A{ static void foo(){ } } A a = new A(); a.foo(); 我能在方法foo()中获得实例a吗?首先,你的代码不是一个好的程序员 这是因为静态方法是类级方法,应该在没有类实例的情况下调用 建议的做法: class A{ static void foo(){ } } A.foo(); 我可以在方法foo()中获取实例吗 不,你不能。因此,您不能在该方法中

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

我有以下代码:

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

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

首先,你的代码不是一个好的程序员

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

建议的做法:

class A{
    static void foo(){
    }
}
A.foo();
我可以在方法foo()中获取实例吗


不,你不能。因此,您不能在该方法中使用它,因为它包含对调用该方法的对象的引用。

根据定义,
静态方法没有实例对象(静态方法不操作特定对象,它们是在类中定义的,纯粹用于名称空间)--因此,否是不可能的…静态方法没有引用,您必须通过它重新实现该方法,如下所示:

class A{ static void foo(A theObject){ } } A a = new A(); A.foo(a); 甲级{ 静态void foo(对象){ } } A=新的A(); A.foo(A);
最好不要从对象的实例调用静态方法

否;这就是静态的意思。
编译器实际上完全忽略该实例


使用实例方法。

构造函数
A()在哪里?
?如果不定义构造函数,默认情况下使用的是A()。。。