2016-09-20 22 views
0

我的例子顯示我試圖給Runnable匿名類添加一些額外的方法,一般來說我怎樣才能調用我創建的額外方法。我如何調用我在匿名類中定義的額外方法?

Runnable myRunnable = new Runnable() 
{ 
    public void run() 
    { 
     System.out.println("Running"); 
    } 
    // any extra method to explain the question 
    public void a() 
    { 
     System.out.println("A"); 
    } 

}; 
myRunnable.run(); 
myRunnable.a(); // is this right?? 
+0

索裏馬文,只是錯了我的腦袋以防萬一,實際上它能類中訪問 –

回答

0

爲什麼你甚至能夠做到這樣的事情?您的myRunnable對象類型爲java.lang.Runnable。除此之外,它沒有任何其他方法。 Java在運行時無法知道分配給myRunnable的實際對象實際上是您自己的實現。

然而,你可以做這樣的事情:

class MyRunnable implements Runnable { 
    @Override 
    public void run() { } 
    public void myMethod() { } 
} 

然後

MyRunnable mr = new MyRunnable(); 
mr.myMethod(); 
相關問題