> Java > 본문

IntelliJ Java 매핑 스트림에 대한 일반 유형 추론

WBOY
풀어 주다: 2024-02-22 12:40:27
앞으로
904명이 탐색했습니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿