検索

ホームページ  >  に質問  >  本文

Java ジェネリックに関するコンパイルの問題

ソース コードは次のとおりで、以下のプロンプトにジャンプします。このコードは明らかにコンパイルできません。

理由の 1 つは次のとおりだと思います

リーリー

ここの String は Number を継承できません。String のサブクラスではありませんか? これは正しいですか?

そして、もう 1 つの質問は、最後の段落で new BoundedEcho<Integer> オブジェクトを渡しましたが、それは BoundedEcho<T> に属しています。なぜここでエラーが報告されるのでしょうか?

BoundedEchopublic class BoundedEcho<? extends Number> {...} に変更するのは正しいですか?

ソースコードはこちら

リーリー リーリー
世界只因有你世界只因有你2754日前525

全員に返信(1)返信します

  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-17 10:05:13

    問題はこれら 2 つの文にあります

    リーリー

    インスタンス化するとき、T を Number として宣言し、後続の呼び出しは BoundedEcho<Number> である必要があります。その理由は、BoundedEcho と BoundedEcho などの型が異なるクラスであり、継承関係がないためです。

    返事
    0
  • キャンセル返事