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

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

WBOY
リリース: 2024-02-22 12:40:27
転載
906 人が閲覧しました

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

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

ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート