Java 멀티스레드 환경에서 제네릭 메소드 사용 방법이 궁금합니다.

조회수 473회

프로그램의 의도는 멀티스레드 환경에서 제네릭 메소드를 이용하여 제네릭 배열 내의 가장 큰 값을 찾는 것입니다. 코드는 아래와 같습니다.

import java.util.Collections;
import java.util.List;

public class MyThread<E> extends Thread {

    @Override
    public void run() {
        public <E extends Comparable<E>> E getMax(List<E> list) {
            E max = Collections.max(list);
            return max;
        }
    }

}

run 메소드 바깥에 제네릭 메소드를 선언하면 아무 에러 없이 잘 작동하지만, run 메소드안에 제네릭 메소드를 작성하면 문법 에러를 뱉습니다. 에러 내용은 아래와 같습니다.

Exception in thread "Thread-0" java.lang.Error: Unresolved compilation problems: 
    Syntax error on token "public", invalid InterfaceHeaderName
    Syntax error on token ">>", { expected after this token
    Syntax error, insert "}" to complete InterfaceBody

    at MyThread.run(MyThread.java:9)

하지만 별개의 스레드에서 작동하기 위해 제네릭 메소드는 반드시 run 메소드 안에 선언되어야 한다고 생각합니다. 어떻게 하면 제네릭 메소드를 올바로 선언할 수 있을까요?

  • (•́ ✖ •̀)
    알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)