[Java][Issue report] 패키지 내 모듈명과 클래스명 중복
자바 패키지 구조가 다음과 같다고 가정해보자.
OOP/
lib/
src/
Calculator.java
Overloading.java
이 때, Overloading.java 파일에는 Calculator라는 사용자 정의 클래스가 정의되어 있다. 그리고 사실 Overloading.java 파일은 Calculator.java 파일과 아무런 의존도, 연관도 없다.
이 때, Overloading.java 파일을 실행하려고 하면 에러가 발생할 것이다.
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
The method getTotalOfSeries(int, int) is undefined for the type Calculator
The method getTotalOfSeries(double, double) is undefined for the type Calculator
at Overloading.main(Overloading.java:49)
또는 다음의 에러 메시지가 뜰 것이다.
Exception in thread "main" java.lang.NoSuchMethodError: 'int Calculator.getTotalOfSeries(int)'
at Overload.main(Overload.java:51)
이는 Overloading.java 파일 내 Calculator 클래스와 Calculator.java 파일명을 컴파일러가 혼동하여 나타난 현상으로 추측된다. 따라서 둘 중 하나의 이름을 바꿔야 한다. Overloading.java 파일 내 Calculator 클래스를 다른 이름으로 바꾸면 실행이 문제 없이 되는 것을 확인하였다.
이렇게 자바 패키지 내에서는 모듈명과 다른 모듈에 있는 클래스명이 겹치지 않게 주의해야 한다.
This content is licensed under
CC BY-NC 4.0
댓글남기기