搜尋

首頁  >  問答  >  主體

java - 抽象內部類別+泛型

簡單的內部類別使用:

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

            }
        };
    }
}

為什麼? ? ?

给我你的怀抱给我你的怀抱2777 天前896

全部回覆(1)我來回復

  • 巴扎黑

    巴扎黑2017-05-17 10:02:28

    呵呵,點沒幫助的那位,自己複製程式碼運行一下,編譯沒問題!沒有問題!

    不會用ide就老實自己javac

    回覆
    0
  • 取消回覆