作者gn00430231 (fluteroll)
看板AndroidDev
標題[問題] 一個語法的問題
時間Tue Sep 8 15:24:26 2015
大家好,小弟在做app時想用timer,找到了以下用法
//宣告
private Handler handler = new Handler();
Runnable myRunnable=new Runnable() {
@Override
public void run() {
// call you delay logic or method here
}
};
//使用
handler.postDelayed(myRunnable, 1000);
因為實在不知道這問題要下什麼關鍵字找答案,所以po文尋求解答
我想了解 Runnable myRunnable=new Runnable(){}; 此段的語法是什麼意思
new 一個實體,但又用 {}; 在裡面作 override
是繼承的簡略寫法嗎? 還是一種特殊的繼承?
又這個寫法是 java 所有的還是 android 獨有的語法OC呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.146.86.37
※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1441697068.A.89C.html
→ corrupt003: anonymous class 09/08 15:56
→ mshockwave: 樓上正解,有時候頗好用 09/08 18:16
推 LPH66: Runnable 是個 interface, 這個寫法是宣告一個無名 class 09/08 20:16
→ LPH66: 實作這個 interface 並在 {} 裡實作它 09/08 20:17
→ LPH66: 這個無名 class 只在這一行看得到用得到 09/08 20:18
→ LPH66: 後續的處理都是由宣告出來的參考經過多型去使用它 09/08 20:18
→ LPH66: 這個寫法不是 interface 專用, 一般 class 也可以這樣用 09/08 20:19
→ LPH66: 這樣就變成這個無名 class 繼承寫上的那個 class 再覆載 09/08 20:20
我懂了,講得很清楚,感謝你們的詳解~
※ 編輯: gn00430231 (36.231.150.197), 09/08/2015 21:19:44
※ 編輯: gn00430231 (36.231.150.197), 09/08/2015 21:20:13