簡體   English   中英

如何在main方法中訪問匿名內部類?

[英]How to access anonymous inner class in main method?

如何在main方法中訪問匿名內部類對象。 出現編譯時錯誤,提示“無法靜態引用非靜態方法”。 如果我將匿名內部類設置為靜態,則可以訪問我想訪問的ut,而無需使其變為靜態。

怎么做。 請幫忙。

AnonymousInnerClass2.java

abstract class AnonymousInnerClass21
{
    abstract void m();  
}

public class AnonymousInnerClass2
{
    AnonymousInnerClass21 a=new AnonymousInnerClass21()
    {
        @Override
        void m() {
            System.out.println("Hello");
        }
    };

    public static void main(String[] args)
    {
        a.m();
    }
}

這是因為要訪問內部類(無論是普通類/命名類還是匿名類),必須創建定義了內部類的類的對象,您可以在下面嘗試

abstract class AnonymousInnerClass21
{
    abstract void m();  
}

public class AnonymousInnerClass2
{
    AnonymousInnerClass21 a=new AnonymousInnerClass21()
    {
        @Override
        void m() {
            System.out.println("Hello");
        }
    };

    public static void main(String[] args)
    {
        AnonymousInnerClass2 anonymousInnerClass2=  new AnonymousInnerClass2 ();//create outer class object
        anonymousInnerClass2.a.m(); // access inner class object through outer class object

    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM