2012-03-28 8 views
2

Wenn ich "neue Runnable" eingeben und STRG + SPACE drücken, ermöglicht Eclipse mir, eine anonyme innere Klasse zu erstellen. Wenn ich das gleiche mit "Thread" mache, tut es das nicht.Eclipse Autocompletion für Runnable arbeiten, aber nicht für Thread

Es ist ein bisschen nervig, dass ich jedes Mal, wenn ich einen anonymen Thread brauche, ein neues Runnable erstellen und dann das "Runnable" in "Thread" ändern muss.

Gibt es eine Möglichkeit, Eclipse auch automatisch einen Thread erstellen zu lassen?

Antwort

2

Als Abhilfe können Sie eine neue Vorlage für die Thread-Erzeugung erstellen.

Eclise (mindestens in 3.7) alreay hat einen für Runnable. Sie können es versuchen, wenn Sie runnable und dann Ctrl+Space eingeben, bis die Vorlagenvorschläge angezeigt werden.

  • Öffnen Sie die Vorlage Ansicht Window > Show View > Templates
  • Select runnable
  • Kopieren/Einfügen aus dem Kontextmenü
  • Bearbeiten Sie die neue Vorlage durch Ersetzen Runnable mit Thread:

    Um eine neue Vorlage für Thread erstellen

+0

Dies scheint eine gute Lösung zu sein! Ich muss morgen nachsehen, wenn ich wieder bei der Arbeit bin, wenn es für mich funktioniert. –

3

Ich denke, Eclipse tut dies, weil Thread eine konkrete Klasse ist, während Runnable anstelle einer Schnittstelle ist. Eclipse erlaubt es Ihnen standardmäßig nicht, eine anonyme Klasse zu erstellen, die eine zusammenhängende Klasse erweitert.

Je mehr akzeptierte Art und Weise ein Thread zu schaffen, ist ein Runnable trotzdem zu verwenden, die Sie nicht auf die Thread Basisklasse nicht einschränkt:

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

Ja. Vermeiden Sie anonyme innere Klassen. Du brauchst Thread? Es macht etwas Wichtiges? Erstellen Sie eine normale Klasse, die den Thread erweitert und implementiert run().

Darüber hinaus. Vermeiden Sie das Erstellen von Thread-Instanzen, wann immer Sie möchten. User-Thread-Pools, Executors usw. statt.

+0

Danke aber das ist nicht wirklich eine Antwort auf die Frage. –

1

Es kommt. Ich bin mir nicht sicher, wie Sie drücken Ctrl + Space.

enter image description here

+0

Seltsam, ich habe es nochmal überprüft und es ist wirklich nicht für mich. Welche Eclipse-Version verwendest du? Ich benutze Eclipse 3.7.2. für Linux. –

+0

Sie sollten dies innerhalb der Klammern tun. '()'. Diese Funktion ist seit der allerersten Version von Eclipse verfügbar. Es hat jedoch keinen 'run()' Methoden-Stub für Sie erstellt. Um dies zu umgehen, können Sie in den Körper der leeren anonymen Klasse gelangen und dort erneut Strg + Leertaste drücken und "Override run() method" wählen. – adarshr

1

Klicken Sie auf „Neu“ in diesem Fenster und eine neue Vorlage erstellen. Strg-Leerzeichen funktioniert dann wie erwartet.

enter image description here

Verwandte Themen