我搜索了这个但不幸的是没有找到匹配项,我在这样的方法中有这个本地匿名内部类
:-
new Object(){
public void open(){
// do some stuff
}
public void dis(){
// do some stuff
}
};
里面有 2 种方法
(open,dis)
我知道如果我想使用其中的任何一种方法就可以了
new Object(){
public void open(){
// do some stuff
}
public void dis(){
// do some stuff
}
}.open()
现在我的问题是如果我想同时调用这两个方法怎么办?
最佳答案
你可以像这样创建一个界面:
interface MyAnonymous {
MyAnonymous open();
MyAnonymous dis(); //or even void here
}
new MyAnonymous(){
public MyAnonymous open(){
// do some stuff
return this;
}
public MyAnonymous dis(){
// do some stuff
return this;
}
}.open().dis();
编辑----
正如@Jeff 指出的那样,只有在分配引用时才需要接口(interface)。 事实上,以下解决方案(由@JamesB 提出)是完全有效的:
new MyObject(){
public MyObject open(){
// do some stuff
return this;
}
public MyObject dis(){
// do some stuff
return this;
}
}.open().dis();
但这不会编译:
MyObject myObject = new MyObject(){
public MyObject open(){
// do some stuff
return this;
}
public MyObject dis(){
// do some stuff
return this;
}
};
myObject.open().dis(); //not compiling since anonymous class creates a subclass of the class
关于java - 构建一个匿名内部类并调用它的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22184606/