prefer_constructors_over_static_methods 진단: 정적 메서드 대신 생성자를 쓸 때

prefer_constructors_over_static_methods 진단: 정적 메서드 대신 생성자를 쓸 때

정적 메서드가 클래스의 새 인스턴스를 만들어 돌려주는데, 그 역할을 생성자가 할 수 있을 때 Dart 분석기가 알려주는 린트(lint) 진단이에요. 새 객체를 만드는 일이라면 생성자로 표현하는 게 더 자연스러워요.

출처: prefer_constructors_over_static_methods

본문

설명

분석기는 정적 메서드가 클래스의 새로 만든 인스턴스를 돌려주는데, 그래서 생성자가 될 수 있을 때 이 진단을 만들어요.

예시

다음 코드는 정적 메서드 all이 생성자가 될 수 있어서 이 진단을 만들어요.

class C {
  final int a, b, c;
  C(this.a, this.b, this.c);
  static C all(int i) => C(i, i, i);
}

흔한 해결 방법

정적 메서드를 이름 있는 생성자(named constructor)로 바꾸면 돼요.

class C {
  final int a, b, c;
  C(this.a, this.b, this.c);
  C.all(int i) : a = i, b = i, c = i;
}

더 알아보기