2012-03-28 4 views
2

"new Runnable"と入力してCTRL + SPACEを押すと、Eclipseで匿名の内部クラスを作成できます。しかし、私が "スレッド"と同じことをするとき、それはしません。Runnable作業のEclipseオートコンプリート、スレッド用ではない

匿名のスレッドが必要になるたびに、新しいRunnableを作成してから、「Runnable」を「Thread」に変更する必要があります。

Eclipseに自動的にスレッドを作成させる方法はありますか?

答えて

2

回避策としては、スレッドの作成のための新しいテンプレートを作成することができます。

Eclise(少なくとも3.7)には、Runnable用のものが1つあります。 runnableと入力してからCtrl+Spaceと入力すると、テンプレートの提案が表示されるまでお試しいただけます。

Threadのための新しいテンプレートを作成するには、次の

  • コンテキストメニューを開き、
  • 編集新しいテンプレートからテンプレートビューWindow > Show View > Templates
  • 選択runnable
  • コピー/貼り付けをThreadRunnableを置き換えることにより、
+0

これはすばらしい解決策です!明日私が仕事に戻ったときにそれは私のために働くかどうかをチェックしなければならない。 –

3

Threadは具体的なクラスであり、Runnableはインターフェイスではないので、Eclipseがこれを実行していると思います。 Eclipseでは、デフォルトでは、匿名のクラスを作成することはできません。

Threadを作成するために、より受け入れられな方法は、Thread基底クラスにあなたを制限しないとにかくRunnableを使用することです:

Thread thread = new Thread(new Runnable() { 
    public void run() { 
     ... 
    } 
}); 
thread.start(); 
... 
0

はい。匿名の内部クラスは避けてください。スレッドが必要ですか?重要なことは何ですか?スレッドを拡張し、run()を実装する通常のクラスを作成します。

さらに、必要に応じてスレッドインスタンスを作成しないでください。ユーザースレッドプール、エグゼキュータなど。

+0

ありがとうございました本当にその質問に対する答えではありません。 –

1

です。あなたがどういうふうに押さえているのか分かりませんCtrl + です。

enter image description here

+0

奇妙なことに、私はもう一度それをチェックして、それは本当に私のためではありません。どのEclipseバージョンを実行していますか?私はEclipse 3.7.2を使用しています。 Linuxの場合 –

+0

これはカッコ内で行う必要があります。 '()'この機能は、Eclipseの最初のバージョン以降に存在しています。しかし、あなたのために 'run()'メソッドスタブを作成しませんでした。これを回避するために、作成された空の匿名クラスの本体の内部に入り、Ctrl + Spaceをもう一度押して、「上書き実行()メソッド」を選択します。 – adarshr

1

このパネルの「新規」をクリックして、新しいテンプレートを作成します。 Ctrl-spaceは期待どおりに動作します。

enter image description here

関連する問題