java: <identifier> expected
클래스 이름, 메소드 이름, 변수 이름 등의 식별자(identifier)가 위치해야 할 곳에 식별자가 존재하지 않기 때문에 발생하는 문법 오류이다.
주된 발생 이유는 다음과 같다.
public class MyTest {
int a = 3;
System.out.println(a);
public static void main(String[] args) {
}
}
sysout 문장은 MyTest 클래스 내부가 아니라 메소드 내부로 들어가야 한다.
public class MyTest {
Integer;
String s;
}
Integer 다음에 변수명을 지정해야 한다.
특히, 예외처리할 때 이런 실수를 종종 저지를 수 있다.
try {
int num = Integer.valueOf(str);
} catch (NumberFormatException) {
}
NumberFormatException e
처럼 예외 클래스 인스턴스가 바인딩될 변수명을 적어줘야 한다.
public class MyTest {
i;
String s;
}
i의 타입을 지정해야 한다.
public class MyTest {
int 123a;
}
숫자로 시작하는 변수명은 identifier로 인정이 안 된다.
변수명이 숫자로 시작하지 않도록 수정해야 한다. identifier는 영문자나 _로 시작해야 한다.