有没有办法在同一个内部类中声明它?

时间:2015-03-14 03:42:51

标签: java class

我知道以下方式有效:

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

    }
}

2 个答案:

答案 0 :(得分:6)

使用匿名课程,您可以

new Object(){
    void foo(){
    }
}.foo();

但是这是你能够使用在课堂内声明的任何成员的唯一地方。

答案 1 :(得分:1)

你可以像匿名课一样拥有它:

 public class Main{
    public void oFunc(){
      new Object(){
       void foo(){
       }
     }.foo(); 
   }
 }