널이 아닌 타입 인자 자리에 null을 전달할 때
널이 아닌 타입 인자 자리에 null을 전달할 때
null_argument_to_non_null_type 진단은 널이 아닌 타입 인자(non-nullable type argument)를 쓰는 자리에 null이 들어왔을 때 분석기가 짚어 주는 메시지예요. null을 넘기면 타입 검사는 통과해도 실제로는 런타임 예외가 나는 상황이라서 미리 알려 주는 거죠.
본문
설명 (Description)
분석기는 null이 Future.value 생성자나 Completer.complete 메서드에 전달될 때 이 진단을 만들어 내요. 특히 그 인스턴스를 만들 때 사용한 타입 인자가 널이 아닌 타입이라면요. 타입 시스템은 이런 제약을 표현해 주지 못하지만, null을 넘기면 런타임에 예외가 발생해요.
예시 (Example)
아래 코드는 타입 인자가 널이 아닌 String인데도 Future.value 생성자에 null을 전달하고 있어서 이 진단이 발생해요.
Future<String> f() {
return Future.value(null);
}
흔한 해결책 (Common fixes)
널이 아닌 값을 전달하면 돼요.
Future<String> f() {
return Future.value('');
}
더 알아보기
- Null safety — 널 안전성 전반을 다루는 문서예요.
- Understanding null safety — 널 안전성의 원리를 더 깊이 설명해요.
- Future.value — 생성자에 전달할 값을 확인해 보세요.
- Completer.complete — 완료 처리에 쓸 값의 형태를 확인해 보세요.