天天看點

java 匿名類調用方法_java – 從匿名類調用新定義的方法

好問題.答案是否你不能直接調用date.someMethod();

我們先來了解這是什麼.

Date date = new Date() { ... };

以上是延續Date類的匿名(沒有名稱)子類.

當你看到代碼,

Runnable r = new Runnable() {

public void run() {

}

};

這意味着您已經定義了正在實作(不擴充)Runnable接口的匿名(沒有名稱)類.

是以當你調用date.someMethod()它将無法調用,因為someMethod沒有在超類中定義.在上面的例子中,超類是Date類.它遵循簡單的首要規則.

但是如果你想調用someMethod,那麼以下是步驟.

Fisrt方式>參考變量’date’

.date.getClass()getMethod( “的someMethod”)調用(日期).

第二種方式>

用建立的Date類的匿名子類的對象.

new Date()

{

public void someMethod() {

System.out.println("Hello");

}

}.someMethod(); //this should be without reference 'date'