import 문 문제 처리
이 마지막 단계에서는 누락되거나 잘못된 import 문으로 인해 발생하는 'Cannot Access Class' 오류를 식별하고 해결하는 방법을 배우게 됩니다.
Java 에서 import 문 이해
import 문은 Java 컴파일러에게 코드에서 사용되는 클래스를 어디에서 찾아야 하는지 알려줍니다. 다른 패키지의 클래스를 import 하지 않고 사용하거나, 잘못 import 하면 'Cannot Access Class' 오류가 발생합니다.
import 문 없이 클래스 생성
적절한 import 문 없이 다른 패키지의 클래스를 사용하는 클래스를 만들어 보겠습니다. src/main/java/com/example/util 디렉토리에 다음 내용으로 Calculator.java라는 새 파일을 생성합니다.
package com.example.util;
public class Calculator {
public int add(int a, int b) {
return a + b;
}
public int subtract(int a, int b) {
return a - b;
}
}
이제 Calculator 클래스를 import 하지 않고 사용하는 src/main/java/com/example/app 디렉토리에 CalculatorDemo.java라는 새 파일을 생성합니다.
package com.example.app;
// Missing import for Calculator class
public class CalculatorDemo {
public static void main(String[] args) {
Calculator calculator = new Calculator(); // Error: Cannot access Calculator
int sum = calculator.add(5, 3);
System.out.println("5 + 3 = " + sum);
int difference = calculator.subtract(10, 4);
System.out.println("10 - 4 = " + difference);
}
}
컴파일 및 오류 관찰
Java 프로젝트를 컴파일해 보십시오.
./compile.sh
다음과 유사한 오류 메시지가 표시되어야 합니다.
src/main/java/com/example/app/CalculatorDemo.java:6: error: cannot find symbol
Calculator calculator = new Calculator();
^
symbol: class Calculator
location: class CalculatorDemo
src/main/java/com/example/app/CalculatorDemo.java:6: error: cannot find symbol
Calculator calculator = new Calculator();
^
symbol: class Calculator
location: class CalculatorDemo
2 errors
이 오류는 CalculatorDemo 클래스가 Calculator 클래스를 import 하지 않고 사용하려고 하기 때문에 발생합니다.
import 문 문제 해결
이 문제를 해결하려면 CalculatorDemo.java 파일에 적절한 import 문을 추가합니다.
package com.example.app;
import com.example.util.Calculator; // Added import statement
public class CalculatorDemo {
public static void main(String[] args) {
Calculator calculator = new Calculator();
int sum = calculator.add(5, 3);
System.out.println("5 + 3 = " + sum);
int difference = calculator.subtract(10, 4);
System.out.println("10 - 4 = " + difference);
}
}
재컴파일 및 솔루션 테스트
이제 Java 프로젝트를 다시 컴파일합니다.
./compile.sh
이제 컴파일이 오류 없이 성공해야 합니다. CalculatorDemo 클래스를 실행하는 간단한 스크립트를 만들어 보겠습니다.
echo "java -cp bin com.example.app.CalculatorDemo" > ./runcalc.sh
chmod +x ./runcalc.sh
이제 CalculatorDemo 클래스를 실행합니다.
./runcalc.sh
다음과 같은 출력이 표시되어야 합니다.
5 + 3 = 8
10 - 4 = 6
이는 올바른 import 문을 추가했으므로 CalculatorDemo 클래스가 이제 Calculator 클래스에 접근할 수 있음을 확인합니다.
솔루션 이해
'Cannot Access Class' 오류가 발생하면 다음을 확인하십시오.
- 사용하려는 클래스를 import 했는지 확인합니다.
- import 문이 올바른 패키지를 가리키는지 확인합니다.
- import 하려는 클래스가 public 인지 확인합니다 (2 단계에서 배웠습니다).
Java 는 클래스를 import 하는 두 가지 방법을 제공합니다.
- 단일 유형 import (Single-type import):
import com.example.util.Calculator;
- 요청 시 import (On-demand import):
import com.example.util.*;
단일 유형 import 는 사용되는 클래스를 명확하게 보여주므로 일반적으로 선호됩니다. 요청 시 import (와일드카드 * 사용) 는 패키지의 모든 클래스를 import 하며, 이는 서로 다른 패키지에 동일한 이름의 클래스가 있는 경우 이름 충돌을 일으킬 수 있습니다.
import 문이 올바른지 확인하면 Java 프로젝트에서 많은 'Cannot Access Class' 오류를 방지할 수 있습니다.