PHP 편집기 Xigua에서 가져온 Java Q&A 칼럼 이번 호에서는 IntelliJ Java의 매핑 스트림에 대한 일반적인 유형 추론에 대해 설명합니다. 개발 과정에서 범용 유형 추론을 합리적으로 사용하면 코드 작성 효율성을 높이고 중복 코드를 줄일 수 있습니다. 이 기사의 토론과 예제를 통해 독자는 IntelliJ Java의 매핑 흐름을 더 잘 이해하고 적용하며 프로그래밍 기술을 더욱 향상시킬 수 있습니다.
다음 수업을 상상해 보세요:
으아악intellij가 매핑 단계 이후에 스트림 유형을 추론하지 못하고 오류를 표시하는 이유가 무엇인지 궁금합니다.
아래와 같이 맵 단계에서 명시적으로 유형을 추가하면 제대로 작동합니다.
으아악intellij에서는 오류가 표시되는데 컴파일할 때 오류가 없는 이유는 무엇입니까? 그 위로 마우스를 가져가면 다음 오류가 나타납니다:
public class test { private static list<model<?>> getmodels() { return list.of(10).stream() .map(test::getmodel) .tolist(); } private static model<?> getmodel(int key) { return new model<>(key); } public static void main(string... str) { system.out.println("hello world!" + getmodels()); } public static class model<t> { private t field; model(t key) { field = key; } public string tostring() { return "model(" + field + ")"; } } }
intellij 컴파일러가 맵 메서드(stream<? extends model<?>>
,而它应该是 stream<model<?>>
)의 더 일반적인 반환 유형을 잘못 유추했습니다. Java 컴파일러는 여전히 올바른 코드를 허용하지만 IDE 경고가 성가신 경우 명시적인 유형 인수를 제공하여 이를 억제할 수 있습니다.
위 내용은 IntelliJ Java 매핑 스트림에 대한 일반 유형 추론의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!