external_with_initializer
external_with_initializer
external로 선언된 필드나 변수에는 초기화 값을 붙일 수 없어요. external 멤버는 구현이 외부에 있기 때문에 초기화 값을 함께 적으면 이 진단이 발생하는 거예요.
본문
설명
analyzer는 external 키워드가 붙은 필드나 변수에 초기화 값이 있거나, external 필드가 생성자에서 초기화될 때 이 진단을 내보내요.
예시
아래 코드는 external 필드 x가 초기화 리스트에서 값을 할당받기 때문에 이 진단이 발생해요.
class C {
external int x;
C() : x = 0;
}
아래 코드는 external 필드 x에 초기화 값이 있어서 이 진단이 발생해요.
class C {
external final int x = 0;
}
아래 코드는 external 최상위 변수 x에 초기화 값이 있어서 이 진단이 발생해요.
external final int x = 0;
흔한 해결 방법
초기화 값을 제거하면 돼요.
class C {
external final int x;
}
더 알아보기
external멤버는 선언만 있고 실제 구현은 네이티브 코드나 다른 곳에 있어요. 그러니 초기화 값까지 같이 적어 줄 필요가 없어요.