如何从外类的主方法中调用烦人类的方法

时间:2016-01-05 13:05:54

标签: java class methods

我是Java的新手,正在尝试学习匿名类的概念。有人可以请告诉我如何调用“真棒”方法'从LocallClassExample的主要方法?

public class LocalClassExample {

    interface Awesome {

        public void awesomeMethod();
    }

    class AwesomeClass {

        public int finalInt= 10;

        Awesome a1 = new Awesome() {

            @Override
            public void awesomeMethod() {
                System.out.println(finalInt);
            }
        };
    }

    public static void main(String[] args) {        

    }
}

2 个答案:

答案 0 :(得分:2)

考虑一下:

new AwesomeClass().a1.awesomeMethod();

将在新创建的awesomeMethod()实例的成员变量a1(即Awesome)上调用方法AwesomeClass

一旦你的主要在你的AwesomeClass之外,它会变得更加棘手 - 而且一旦它超出包裹范围就会变得更加棘手。在这些情况下,你必须提供像

这样的吸气剂
public Awesome getAwesome() { 
  return a1; 
}

在调用时,仍会执行匿名类中定义的方法。

答案 1 :(得分:2)

尝试使用它来创建内部类对象:

  public static void main(String[] args) {        
    LocalClassExample.AwesomeClass oi = new LocalClassExample().new AwesomeClass();
  oi.awesomeMethod();
}