ソース コードは次のとおりで、以下のプロンプトにジャンプします。このコードは明らかにコンパイルできません。
理由の 1 つは次のとおりだと思います
リーリーここの String は Number を継承できません。String のサブクラスではありませんか? これは正しいですか?
そして、もう 1 つの質問は、最後の段落で new BoundedEcho<Integer>
オブジェクトを渡しましたが、それは BoundedEcho<T> に属しています。なぜここでエラーが報告されるのでしょうか?
BoundedEcho
を public class BoundedEcho<? extends Number> {...}
に変更するのは正しいですか?
ソースコードはこちら
リーリー リーリー
問題はこれら 2 つの文にあります
リーリーインスタンス化するとき、T を Number として宣言し、後続の呼び出しは BoundedEcho<Number> である必要があります。その理由は、BoundedEcho と BoundedEcho などの型が異なるクラスであり、継承関係がないためです。