"'.class' 예상" 오류 이해 및 해결
Java에서 코드를 컴파일하는 동안 개발자는 수수께끼 같은 오류 메시지 " '.class'가 필요합니다." 이 오류는 초보자와 숙련된 프로그래머 모두에게 당황스러울 수 있습니다. 그 의미와 원인, 효과적인 해결 방법을 파헤쳐 보겠습니다.
의미와 원인
컴파일러가 유형( 예를 들어 int, int[]) 표현식을 예상하는 경우입니다. 이 이상한 동작은 구문 검사 중 컴파일러의 혼란으로 인해 마침표(.) 뒤에 클래스 선언이 필요하게 됩니다.
예
다음은 몇 가지 예입니다. 오류:
double d = 1.9; int i = int d; // error here
int j = someFunction(int[] a); // error here
두 경우 모두 컴파일러는 "오류: '.class'가 필요합니다."라고 불평합니다.
해결 방법
'.class'를 추가하라는 도움이 되지 않는 '제안'은 거의 항상 올바르지 않습니다. 대신 실제 솔루션은 코드에 있는 유형의 의도된 목적에 따라 다릅니다.
1. 유형 캐스팅:
유형 캐스팅을 수행하려는 의도인 경우 유형을 괄호로 묶습니다.
double d = 1.9; int i = (int) d; // Correct: casts `1.9` to an integer
2. 변수 할당 또는 매개변수 전달:
일반적으로 단순 할당 또는 매개변수 전달의 경우 유형을 제거해야 합니다.
int j = someFunction(a); // Correct ... assuming `a`'s type is suitable for the call
추가 예
틀림:
someMethod(array[]);
맞음:
someMethod(array); // pass ref to array someMethod(array[someExpression]); // pass array element
틀림:
int i = someMethod(int j);
맞음:
int i = someMethod(j);
틀림:
int i = int(2.0);
맞음:
int i = (int) 2.0;
틀림:
int[]; letterCount = new int[26];
맞음:
int[] letterCount = new int[26];
틀림:
if (someArray[] > 80) { // ... }
맞음:
if (someArray[someIndex] > 80)
틀림:
int[] integers = new int[arraySize]; ... return integers[];
맞음:
return integers; // Return entire array return integers[someIndex]; // Return array element
틀림:
if ((withdraw % 5 == 0) & (acnt_balc >= withdraw + 0.50)) double cur = acnt_balc - (withdraw + 0.50); System.out.println(cur); else System.out.println(acnt_balc);
맞음:
if ((withdraw % 5 == 0) & (acnt_balc >= withdraw + 0.50)) { double cur = acnt_balc - (withdraw + 0.50); System.out.println(cur); } else { System.out.println(acnt_balc); }
위 내용은 Java에서 ''.class' 예상' 오류가 발생하는 이유는 무엇이며 어떻게 해결할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!