• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:JAVAのソースについて)

JAVAのソースについて

このQ&Aのポイント
  • JAVAのソースについて
  • 独学でandroidを勉強しています。タイマーのソースを見ていたのですが、何故この記述になるか点でさっぱりわかりませんどなたか分かりやすく教えてください。特に「 timer.schedule( new TimerTask() {~」の部分が分かりません。もし出来るのならば分かりやすく分解して書きたいのですが可能でしょうか?お願いします。
  • 独学でandroidを勉強している方がタイマーのソースコードでつまずいているようです。具体的には「timer.schedule( new TimerTask() {~」の部分が分かりません。質問者さんは分かりやすく分解して書いて欲しいとおっしゃっています。

質問者が選んだベストアンサー

  • ベストアンサー
  • salsberry
  • ベストアンサー率69% (495/711)
回答No.2

既にANo.1の方がヒントを出していますが、timer.schedule()の部分を分解して書くには下記のように新しいクラスを2つ定義する必要があります。 class RunnableX implements Runnable { public void run() { second++; 中略 } } class TimerTaskY extends TimerTask { public void run() { handler.post(new MyRunnable()); } } timer.schedule(new TimerTaskY(), 1000, 1000); ただし、RunnableXの定義からsecond, minute, hourを、TimerTaskYの定義からは変数handlerをアクセスできなければいけません。 RunnableXやTimerTaskYをプログラム中の他の場所で使うことがないなら無名クラスを使って書いた方が簡潔に記述できますが、どちらが読みやすいかは好みの問題です。

elkheart
質問者

お礼

分かりやすく説明していただいてありがとうございます。 何とか理解できそうです。 またよろしくお願いします。

その他の回答 (2)

  • salsberry
  • ベストアンサー率69% (495/711)
回答No.3

ANo.2でnew MyRunnable()と書いた部分はnew RunnableX()の誤りです。訂正の上お詫びします。

  • koko_u_u
  • ベストアンサー率18% (216/1139)
回答No.1

とりあえず、「無名クラス」でググッてちょうだい。

関連するQ&A