私はコードに出くわしました。このコード行は実際には何を意味するのでしょうか? public class Queue<E extends Element>{
E は任意のオブジェクトにできることは理解していますが、なぜ add extends Element
. Element は、2 つの変数 + getter と setter を含む別のクラスです。その構文を使用する利点/欠点は何ですか?
質問する
54 次
2 に答える
4
Queue<E>
if E
extendsのみの具体的なインスタンスを作成できることを意味しますElement
。したがって、たとえば、次の宣言は失敗します。
Queue<String> q; // Invalid
…String
伸びないからElement
。
の実装内で、ユーザーQueue<E>
(およびコンパイラー)E
が のプロパティとメソッドを持っていることを知っているElement
ので、それらを使用できるので便利です。宣言がただの場合、型指定された引数とメンバーのプロパティまたはメソッドpublic class Queue<E>{
を使用しようとすると、それらのプロパティ/メソッドが に存在しないため、コンパイラは文句を言います。Element
E
Object
于 2013-08-19T10:19:39.137 に答える
1
E
ジェネリックQueue
クラスがインスタンス化される型は、 から継承する必要がありますElement
。
クラス内のコードは、クラス メソッドQueue
に依存しています (呼び出しがあります) 。Element
于 2013-08-19T10:19:49.783 に答える