@Deprecated()를 일관되게 적용해 주세요
@Deprecated()를 일관되게 적용해 주세요
클래스나 필드가 deprecated라면, 관련된 생성자나 생성자 파라미터에도 @Deprecated() 어노테이션을 함께 붙여서 일관성을 유지해 주세요. 그래야 사용자들이 어디서부터 폐기된 API인지 명확히 알 수 있어요.
본문
@Deprecated()를 일관되게 적용해 주세요.
- 클래스가 deprecated라면, 그 생성자도 deprecated여야 해요.
- 필드가 deprecated라면, 그 필드를 가리키는 생성자 파라미터도 deprecated여야 해요.
- 필드를 가리키는 생성자 파라미터가 deprecated라면, 그 필드도 deprecated여야 해요.
BAD:
@deprecated
class A {
A();
}
class B {
B({this.field});
@deprecated
Object field;
}
GOOD:
@deprecated
class A {
@deprecated
A();
}
class B {
B({@deprecated this.field});
@deprecated
Object field;
}
class C extends B {
C({@deprecated super.field});
}
활성화 방법
deprecated_consistency 규칙을 활성화하려면 analysis_options.yaml 파일의 linter > rules 아래에 deprecated_consistency를 추가하면 돼요.
linter:
rules:
- deprecated_consistency
대신 YAML map 문법으로 린트 규칙을 설정한다면 linter > rules 아래에 deprecated_consistency: true를 추가하면 돼요.
linter:
rules:
deprecated_consistency: true