我知道以下方式有效:
package mypackage;
public class Main{
public void oFunc(){
class Inner{
void foo(){
}
};
Inner s = new Inner();
s.foo();
}
}
有没有这样的方法可以创建对象并同时声明它? 这是无法编译的,有没有类似的方法来做到这一点?
package mypackage;
public class Main{
public void oFunc(){
new class Inner{
void foo(){
}
}().foo();
}
}
答案 0 :(得分:6)
使用匿名课程,您可以
new Object(){
void foo(){
}
}.foo();
但是这是你能够使用在课堂内声明的任何成员的唯一地方。
答案 1 :(得分:1)
你可以像匿名课一样拥有它:
public class Main{
public void oFunc(){
new Object(){
void foo(){
}
}.foo();
}
}