2012-03-28 3 views
2

Если я набираю «new Runnable» и нажимаю CTRL + SPACE, Eclipse позволяет мне создать анонимный внутренний класс. Однако, когда я делаю то же самое с «Thread», это не так.Eclipse autocompletion for Runnable working, но не для Thread

Немного раздражает, что каждый раз, когда мне нужен анонимный поток, я должен создать новый Runnable, а затем изменить «Runnable» на «Thread».

Есть ли способ позволить Eclipse автоматически создать поток?

ответ

2

В качестве временного решения можно создать новый шаблон для создания потока.

Eclise (по крайней мере, в 3.7) alreay имеет один для Runnable. Вы можете попробовать, если вы наберете runnable, а затем Ctrl+Space, пока не будут показаны предложения шаблона.

Чтобы создать новый шаблон для Thread:

  • Открыть вид шаблона Window > Show View > Templates
  • Выберите runnable
  • Копировать/Вставить из контекстного меню
  • Редактировать новый шаблон, заменив Runnable с Thread
+0

Это, кажется, отличное решение! Я должен проверить завтра, когда вернусь на работу, если это сработает для меня. –

3

Я думаю, что Eclipse делает это, потому что Thread - это конкретный класс, а Runnable вместо интерфейса. Eclipse по умолчанию не позволяет создавать анонимный класс, который расширяет конкретизацию.

Более общепринятый способ создания Thread является использование Runnable в любом случае, который не ограничивает вас в Thread базового класса:

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. Тем не менее, он не создал для вас «stut» («run»). Чтобы обойти это, вы можете получить внутри тела созданного пустого анонимного класса и снова нажать Ctrl + Space и выбрать «Override run() method». – adarshr

1

Нажмите "New" на этой панели и создать новый шаблон. Ctrl-space будет работать так, как вы ожидаете.

enter image description here

 Смежные вопросы

  • Нет связанных вопросов^_^