作者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://webptt.com/m.aspx?n=bbs/AndroidDev/M.1441697068.A.89C.html
1F:→ corrupt003: anonymous class 09/08 15:56
2F:→ mshockwave: 樓上正解,有時候頗好用 09/08 18:16
3F:推 LPH66: Runnable 是個 interface, 這個寫法是宣告一個無名 class 09/08 20:16
4F:→ LPH66: 實作這個 interface 並在 {} 裡實作它 09/08 20:17
5F:→ LPH66: 這個無名 class 只在這一行看得到用得到 09/08 20:18
6F:→ LPH66: 後續的處理都是由宣告出來的參考經過多型去使用它 09/08 20:18
7F:→ LPH66: 這個寫法不是 interface 專用, 一般 class 也可以這樣用 09/08 20:19
8F:→ 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