Mixin은 인스턴스화할 수 없어요
Mixin은 인스턴스화할 수 없어요
Mixin은 여러 클래스에 동작을 섞어 주는 역할을 하는 타입이라서 스스로 인스턴스를 만들 수 없어요. 그래서 mixin을 M()처럼 직접 인스턴스화하면 이 진단이 발생해요.
본문
설명
analyzer는 mixin이 인스턴스화될 때 이 진단을 만들어요. mixin은 그 자체로 new를 쓰거나 M()처럼 생성자를 호출해서 인스턴스를 만들 수 없는 타입이에요.
예시
아래 코드는 mixin M을 인스턴스화하고 있어서 진단이 발생해요.
mixin M {}
var m = M();
해결 방법
클래스의 인스턴스를 쓰려는 의도였다면, mixin의 이름 대신 그 클래스의 이름을 사용하면 돼요. 인스턴스를 만들 대상은 mixin이 아니라 클래스여야 한다는 점만 기억해 두면 좋아요.
더 알아보기
- mixin을 어떻게 정의하고 사용하는지에 대해서는 Dart 언어 문서의 mixin 부분을 참고하세요.