`factory`로 표시한 메서드가 새 객체를 반환하지 않을 때
factory로 표시한 메서드가 새 객체를 반환하지 않을 때
factory 어노테이션이 붙은 메서드가 새로 할당된 객체를 반환하지 않을 때 Dart analyzer가 만들어 내는 진단이에요. factory 메서드는 말 그대로 새 객체를 만들어 주는 역할을 해야 하는데, 그 규칙을 지키지 않았을 때 알려 주는 거죠.
본문
이 진단은 factory 어노테이션이 붙은 메서드가 새로 할당된 객체를 반환하지 않을 때 발생해요.
아래 코드는 createC 메서드가 새 인스턴스를 만들지 않고 필드의 값을 그대로 돌려주고 있어서 이 진단을 만들어 내요.
import 'package:meta/meta.dart';
class Factory {
C c = C();
@factory
C createC() => c;
}
class C {}
고치는 방법
메서드가 반환 타입의 새 인스턴스를 만들어서 반환하도록 바꿔 주면 돼요.
import 'package:meta/meta.dart';
class Factory {
@factory
C createC() => C();
}
class C {}
더 알아보기
- meta 패키지의
@factory어노테이션 - factory 생성자