问题描述

简单的内部类使用:

public class OuterClass { public OuterClass() { } public abstract class InnerAbstractClass { public void a() { } public abstract void absMethod(); } public void test() { new OuterClass().new InnerAbstractClass() { public void absMethod() { } }; } public static void main(String[] args) { new OuterClass().new InnerAbstractClass() { public void absMethod() { } }; }}

在上面例子中添加泛型

public class OuterClass<T> { public OuterClass() { } public abstract class InnerAbstractClass { public void a() { } public abstract void absMethod(); } public void test() { new OuterClass().new InnerAbstractClass() { public void absMethod() { } }; } public static void main(String[] args) { new OuterClass().new InnerAbstractClass() { public void absMethod() { } }; }}

在test方法中调用内部类,编译正确。在main方法中报错,cannot be referenced from a static context。
如果在另一个新建的类中调用内部类不报错

public class OuterClassTest { public static void main(String[] args) { new OuterClass().new InnerAbstractClass() { public void absMethod() { } }; }}

java - 抽象内部类+泛型-优客号

为什么???

问题解答

回答1:

呵呵,点没帮助的那位,自己复制代码运行一下,编译没问题!没有问题!

不会用ide就老老实实自己javac