prefer_constructors_over_static_methods 진단: 정적 메서드 대신 생성자를 쓸 때
prefer_constructors_over_static_methods 진단: 정적 메서드 대신 생성자를 쓸 때
정적 메서드가 클래스의 새 인스턴스를 만들어 돌려주는데, 그 역할을 생성자가 할 수 있을 때 Dart 분석기가 알려주는 린트(lint) 진단이에요. 새 객체를 만드는 일이라면 생성자로 표현하는 게 더 자연스러워요.
본문
설명
분석기는 정적 메서드가 클래스의 새로 만든 인스턴스를 돌려주는데, 그래서 생성자가 될 수 있을 때 이 진단을 만들어요.
예시
다음 코드는 정적 메서드 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;
}