deprecated_subclass
deprecated_subclass
클래스 선언의 extends 절이나 클래스·enum 선언의 implements 절에서 @Deprecated.subclass로 표시된 클래스를 사용하면 이 진단이 나와요. 즉, 그 클래스를 상속하거나 구현하는 게 이제는 지양해야 할 동작이라는 뜻이죠. 어떻게 대응하면 되는지 살펴볼게요.
본문
@Deprecated.subclass 어노테이션이 붙은 클래스를 클래스 선언의 extends 절, 또는 클래스·enum 선언의 implements 절에서 사용하면 analyzer가 이 진단을 만들어요. 이 어노테이션은 해당 클래스를 확장하거나 구현하는 것이 deprecated이며 곧 제거될 것임을 나타내요. 이 변경은 아마 클래스를 final이나 sealed로 표시하는 방식으로 강제될 거예요.
예시
라이브러리 p가 @Deprecated.subclass로 표시된 클래스를 정의한다고 해볼게요.
@Deprecated.subclass()
class C {}
그러면 p가 아닌 다른 어떤 라이브러리에서든 다음 코드는 이 진단을 만들어내요.
import 'package:p/p.dart';
class D extends C {}
일반적인 해결 방법
@Deprecated.subclass 어노테이션에 있는 구체적인 안내를 따라주세요. 그게 없다면 관련된 extends 절을 제거하거나 implements 절에서 클래스 이름을 빼면 돼요.
class D {}