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()。。。