인프런 커뮤니티 질문&답변

lsu1073님의 프로필 이미지

작성한 질문수

나도코딩의 자바 기본편 - 풀코스 (20시간)

Runnable

12장 Runnable 강의

23.11.23 21:39 작성

·

341

1

 스레드 객체 만들때 강의에서와 달리

java.lang이 있어야 오류가 안 나던데 왜 이런 건가요

답변 3

1

나도코딩님의 프로필 이미지
나도코딩
지식공유자

2023. 11. 27. 20:54

프로젝트 내에 혹시 Thread 라는 이름으로 클래스를 별도로 정의하신 곳이 있나요?

image

제가 임의로 class Thread { } 를 정의하니 동일한 현상이 나와지는 것 같습니다. Thread 라고 이름을 짓게 되면 java.lang 패키지에 있는 Thread 를 의미하는 것인지, 또는 프로젝트 내에 별도로 만든 Thread 를 의미하는 것인지 모호하여 java.lang 을 반드시 추가해야 할 수도 있답니다.

image

코드에서 Thread 를 입력하였을 때 나타나는 목록 중에서 java.lang 이 아닌 다른 패키지가 있는지 확인해보시고 있다면 해당 클래스를 삭제하거나 다른 이름으로 변경해주셔야 합니다. 삭제 또는 이름 변경이 어려우신 경우 java.lang 을 붙여서 Thread 를 사용하시는 것도 좋습니다 😊

감사합니다.

lsu1073님의 프로필 이미지
lsu1073
질문자

2023. 11. 27. 22:47

우와 정말 수정하니 됐어요. 제가 강의듣고 복습해보면서 _01_Thread 해야 되는데 그냥 Thread 로 했더군요 ㅠㅠ 정말 감사합니다!!!

image

0

나도코딩님의 프로필 이미지
나도코딩
지식공유자

2023. 11. 26. 20:22

CleanRunnable 클래스가 잘못 작성된 것으로 보이네요.

클래스 정의를 할 때 implements Runnable 부분을 빼먹으신 건 아닌지 확인 부탁드려요.

(잘못된 코드)

public class CleanRunnable { 
    ...
}

(올바른 코드)

public class CleanRunnable implements Runnable {
    ...
}

수정 후에도 되지 않으신다면 CleanRunnable 코드를 전체 복사 붙여넣기 해서 다시 질문글 남겨주세요 😊

감사합니다.

lsu1073님의 프로필 이미지
lsu1073
질문자

2023. 11. 27. 19:37

package chap_12.clean;

public class CleanRunnable implements Runnable {

    @Override
    public void run() {
        System.out.println("직원 청소 시작");
        for (int i = 2; i <= 10; i+=2) {
            System.out.println(i +"번방 청소 중(Runnable)");

        }
        System.out.println("직원 청소 완료");

    }
}

Thread입력할때 인텔리제이 자동완성으로 여러가지 나오잖아요? 강의에서 처럼 Thread 
입력할때 java.lang 써져있는거 자동으로 엔터하면  java.lang.Thread thread 이렇게 바껴요  ㅠㅠ 

0

나도코딩님의 프로필 이미지
나도코딩
지식공유자

2023. 11. 24. 08:53

안녕하세요?

java.lang 패키지는 자바에서 자동으로 import 를 해주기 때문에 java.lang 을 적지 않아도 Thread 사용이 가능할텐데요. 적지 않았을 때 어떤 에러가 발생했는지 에러 메시지를 알려주시면 확인 후 도움 드리겠습니다 😊

감사합니다.

lsu1073님의 프로필 이미지
lsu1073
질문자

2023. 11. 26. 20:11

image강의에서 처럼 코드를 적으면 에러가 나서 실행이 안돼요 ㅠㅠ

lsu1073님의 프로필 이미지

작성한 질문수

질문하기