2012-03-28 1 views
2

"new Runnable"을 입력하고 CTRL + SPACE를 누르면 Eclipse에서 익명의 내부 클래스를 만들 수 있습니다. 그러나 "Thread"와 동일한 작업을 수행 할 때는 그렇지 않습니다.Runnable 작업을위한 이클립스 자동 완성이 스레드가 아니라

익명 스레드가 필요할 때마다 새로운 Runnable을 만든 다음 "Runnable"을 "Thread"로 변경해야합니다.

Eclipse에서 자동으로 스레드를 만들 수있는 방법이 있습니까?

답변

2

해결 방법으로 당신은 스레드 생성을위한 새로운 템플릿를 만들 수 있습니다.

Eclise (적어도 3.7) alreay에는 Runnable 용으로 하나가 있습니다. 템플리트 제안이 표시 될 때까지 runnable을 입력 한 다음 Ctrl+Space을 입력하면 시도 할 수 있습니다.

Thread에 대한 새 템플릿을 만들려면 :

  • 컨텍스트 메뉴를 열고
  • 편집 새로운 템플릿에서 템플릿보기 Window > Show View > Templates
  • 선택 runnable
  • 복사/붙여 넣기를 ThreadRunnable을 대체하여
+0

이것은 훌륭한 해결책 인 것 같습니다! 내가 일하면 내일 직장에있을 때 내일 확인해야 해. –

3

Thread은 구체적인 클래스이므로 이클립스는이 작업을 수행한다고 생각하지만 Runnable은 인터페이스 대신 사용합니다. 이클립스는 기본적으로 당신이 하나의 클래스를 확장하는 익명의 클래스를 생성하는 것을 허용하지 않을 수도있다.

Thread을 만들 수있는 더 허용 방법은 Thread 기본 클래스에 당신을 제한하지 않는 어쨌든 Runnable을 사용하는 것입니다

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

예. 익명 내부 클래스는 피하십시오. 너 스레드가 필요해? 중요한 일을합니까? thread를 확장 해, 통상의 클래스를 작성해, run()를 구현한다.

또한. 원할 때마다 스레드 인스턴스를 작성하지 마십시오. 대신 사용자 스레드 풀, executor 등.

+0

감사합니다. 이 질문에 대한 답이 아닙니다. –

1

올 수 있습니다. 어떻게 누르는 지 잘 모르겠 음 Ctrl + . 이 패널

enter image description here

+0

이상하다, 나는 그것을 다시 점검했다. 그리고 그것은 나를 위해 정말로하지 않는다. 어떤 Eclipse 버전을 실행하고 있습니까? 나는 Eclipse 3.7.2를 사용한다. Linux 용. –

+0

괄호 안에 넣어야합니다. '()'. 이 기능은 이클립스의 첫 번째 버전부터있었습니다. 그러나 run() 메소드 스텁을 생성하지는 않습니다. 이를 피하기 위해, 생성 된 빈 익명 클래스의 몸체 내부로 들어가서 Ctrl + Space를 다시 눌러 "Override run() method"를 선택할 수 있습니다. – adarshr

1

클릭 "새"와 새 템플릿을 만들 수 있습니다. 그러면 Ctrl-space가 예상대로 작동합니다.

enter image description here

관련 문제