invalid_factory_method_decl 진단: factory 메서드에 반환 타입이 없을 때
invalid_factory_method_decl 진단: factory 메서드에 반환 타입이 없을 때
Dart 분석기가 내보내는 진단에는 이름이 있어요. invalid_factory_method_decl은 @factory 애너테이션이 붙은 메서드의 반환 타입이 void일 때 분석기가 알려주는 컴파일 타임 진단이에요. factory 메서드는 무언가를 만들어 반환해야 하는데 void면 아무것도 반환하지 않으니까요.
본문
설명
factory 애너테이션이 붙은 메서드가 void 반환 타입을 가질 때 분석기는 이 진단을 만들어요. factory는 새 객체를 만들어 주는 역할이므로 반환 타입이 반드시 있어야 해요.
예시
아래 코드는 메서드 createC가 @factory 애너테이션을 달았는데 아무 값도 반환하지 않기 때문에 이 진단이 나와요.
import 'package:meta/meta.dart';
class Factory {
@factory
void createC() {}
}
class C {}
흔한 해결 방법
반환 타입을 void가 아닌 다른 타입으로 바꿔요.
import 'package:meta/meta.dart';
class Factory {
@factory
C createC() => C();
}
class C {}