在Java中,是否有可能訪問方法所屬的實例,只給出方法?如何訪問在java中擁有一個方法的實例?
例如:
public class ClassA {
private ClassB instanceB = new ClassB();
// ...
private void sendMethod() {
instanceB.receiveMethod(foo);
}
public void foo() {}
}
public class ClassB {
public void receiveMethod (Method method) {
Object o = foo.getInstanceOwner(); // just made that part up...
}
}
我的感覺是方法屬於類,一類沒有實例,所以答案是否定的,但也許有一些偷偷摸摸的反射技術,我不知道。我總是可以通過'this'和foo方法一起傳遞,但這看起來像是額外的行李。
我不記得能夠通過類似的方法在我的Java ...然後再次,我有一段時間沒有使用它。 – tster 2011-04-01 23:50:16
你不能發送這樣的方法; java沒有函數指針,lambdas,委託或類似的東西。 – Kevin 2011-04-01 23:54:02
hm,看起來你是對的 - 我來自一個主要的ActionScript背景,你可以*傳遞類似的方法。 – ericsoco 2011-04-01 23:56:57