1715757091994598
Kiyoung Choi
  • 2016.4.15 17:08
  • 조회수 409
  • 답변수 1
1715757091994598
Kiyoung Choi
  • 2016.4.15 17:08
  • 조회수 409
  • 답변수 1

오류가 이해가 안됩니다.

Command failed: /Code.java:9: error: constructor MyThread in class MyThread cannot be applied to given types;
MyThread a = new MyThread();
^
required: String
found: no arguments
reason: actual and formal argument lists differ in length
1 error

오류를 해결해볼려고 했는데,
오류 이해마저 잘 되지 않습니다.

그리하여, 혼자서 해결하기 위해서,
강의의 노트처럼 똑같이 따라 했는데,
그마저도 안됩니다.

제 코딩을 한번 봐주세요.

ThreadExam.java
public class ThreadExam{
  public static void main(String [] arg){
    MyThread thread = new MyThread("");
    thread.start();

    System.out.println("main의 마지막 코드 입니다. main이 종료하더라도 thread는 계속 동작할 수 있습니다.");
  }
}
MyThread.java
public class MyThread extends Thread{
  String str;
  public MyThread(String str){
    this.str = str;
  }

  public void run(){
    for(int i =0; i< 10; i++){
        System.out.print(str);
      try{
        Thread.sleep((int)(Math.random()*1000));

      }catch(InterruptedException e) {
        e.printStackTrace();
      }
    }
  }
}
  • #자바 중급
  • #쓰레드 만들기(extend Thread) - 실습

1 답변

  • Gscxhpxkg5i74t30rimh
    정두식
    • 2016.4.15 19:25

    발생한 오류는 작성하신 코드가 아니라 정답 체크 로직에서 발생하는 오류입니다.

    정답 체크 로직에서는 MyThread객체를 생성해서 그 객체가 Thread를 상속 받는지 확인하는데요. 생성하는 과정에 MyThread a = new MyThread();라는 코드가 들어 있습니다. 이 문제는 생성자 수정 없이 문제를 풀도록 디자인 되어서 발생하는 문제네요.

    public MyThread(){
    }
    

    위와 같이 생성자를 오버로딩해서 추가해 주시면 잘 동작할겁니다.

    • 정말 감사합니다. 잘 풀렸습니다. -Kiyoung Choi
      2016.4.15 19:32

답변 쓰기

이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.