有关java内部类的,高手帮我看下
不知道为什么得不到想要的结果
我要 控制台输出:
(*^__^*) 嘻嘻……
say foo!!!
代码如下:
/** * 匿名类 */public class InnerClassTest05 { public Foo02 f = new Foo02() { public void say() { System.out.println("(*^__^*) 嘻嘻……"); } }; public Foo02 test(){ return new Foo02(){ public void say(){ System.out.println("say foo!!!"); } }; } public static void main(String[] args) { InnerClassTest05 inner = new InnerClassTest05(); inner.f.say(); inner.test(); }}
public interface Foo02 { void say();}
public Foo02 test(){ return new Foo02(){ public void say(){ System.out.println("say foo!!!"); } }; }
[解决办法]
inner.test() 这句相当于只创建对象,创建完对象后调用才能输出:
inner.test().say()