external_with_initializer

external_with_initializer

external로 선언된 필드나 변수에는 초기화 값을 붙일 수 없어요. external 멤버는 구현이 외부에 있기 때문에 초기화 값을 함께 적으면 이 진단이 발생하는 거예요.

출처: external_with_initializer

본문

설명

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 멤버는 선언만 있고 실제 구현은 네이티브 코드나 다른 곳에 있어요. 그러니 초기화 값까지 같이 적어 줄 필요가 없어요.