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

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

WBOY
WBOY앞으로
2024-02-22 12:40:27897검색

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 컴파일러가 맵 메서드(streamed7af423ac93edbafbfac8373c81f6ff>,而它应该是 streamb39763702b7235adb5697e820e631fce>)의 더 일반적인 반환 유형을 잘못 유추했습니다. Java 컴파일러는 여전히 올바른 코드를 허용하지만 IDE 경고가 성가신 경우 명시적인 유형 인수를 제공하여 이를 억제할 수 있습니다.

으아악

위 내용은 IntelliJ Java 매핑 스트림에 대한 일반 유형 추론의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제