是否可以在此方法中获取调用静态方法的对象?
我有这段代码:
class A{
static void foo(){
}
}
A a = new A();
a.foo();
我可以在方法a
中获取实例foo()
吗?
答案 0 :(得分:2)
首先,你的代码不如程序员好。
这是因为静态方法是类级方法,应该在没有任何类实例的情况下调用。
推荐方法:
class A{
static void foo(){
}
}
A.foo();
不,你不能。 Because foo() is declared as static。所以你不能在那个方法中使用它,因为它包含对调用该方法的对象的引用。我可以在foo()方法中获取实例吗?
答案 1 :(得分:1)
根据定义,static
方法没有实例对象(静态方法不对特定对象进行操作,它们在类中仅为命名空间定义) - 所以否
答案 2 :(得分:0)
不可能......静态方法没有引用,你必须通过它重新实现方法:
class A{ static void foo(A theObject){ } } A a = new A(); A.foo(a);
最好不要从对象实例中调用静态方法
答案 3 :(得分:0)
没有;这就是static
的含义
编译器实际上完全忽略了实例。
使用实例方法。