슈퍼타입의 정적 멤버를 한정하지 않고 참조하는 경우

슈퍼타입의 정적 멤버를 한정하지 않고 참조하는 경우

한 클래스 안에서 상위 클래스(superclass)에 있는 정적(static) 멤버를 그 이름을 한정(qualified)하지 않고 그냥 참조하면 이 진단이 발생해요. 정적 멤버를 참조할 때는 정의한 타입의 이름을 꼭 붙여줘야 한다는 점을 알려주는 진단이에요.

출처: unqualified_reference_to_non_local_static_member

본문

설명

analyzer는 한 클래스의 코드가 상위 클래스에 있는 정적 멤버를, 멤버 이름 앞에 해당 멤버를 정의한 타입의 이름을 붙이지 않고 참조할 때 이 진단을 내보내요.

예시

다음 코드는 정적 필드 x를 getter g에서, 정의 클래스의 이름을 붙이지 않고 참조하기 때문에 진단이 발생해요.

class A {
  static int x = 3;
}

class B extends A {
  int get g => x;
}

일반적인 해결 방법

정적 멤버의 이름 앞에 선언한 클래스의 이름을 붙여줘요.

class A {
  static int x = 3;
}

class B extends A {
  int get g => A.x;
}

더 알아보기