ホームページ  >  記事  >  IntelliJ Java マッピング ストリームの汎用型推論

IntelliJ Java マッピング ストリームの汎用型推論

WBOY
WBOY転載
2024-02-22 12:40:27902ブラウズ

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 + ")";
        }

    }

}

Solution

intellij コンパイラは、マップ メソッドのより一般的な戻り値の型 (## であるべきところを、streamed7af423ac93edbafbfac8373c81f6ff>) を誤って推論しました。 #ストリーム21b8aa045b6ee9b94c0e056ec9cee9a2>)。 Java コンパイラは引き続きコードを正しいものとして受け入れますが、IDE の警告が煩わしい場合は、明示的な型引数を指定するだけで警告を抑制できます。 リーリー

以上がIntelliJ Java マッピング ストリームの汎用型推論の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。