0

私はコードに出くわしました。このコード行は実際には何を意味するのでしょうか? public class Queue<E extends Element>{E は任意のオブジェクトにできることは理解していますが、なぜ add extends Element. Element は、2 つの変数 + getter と setter を含む別のクラスです。その構文を使用する利点/欠点は何ですか?

4

2 に答える 2

4

Queue<E>if Eextendsのみの具体的なインスタンスを作成できることを意味しますElement。したがって、たとえば、次の宣言は失敗します。

Queue<String> q; // Invalid

String伸びないからElement

の実装内で、ユーザーQueue<E>(およびコンパイラー)Eが のプロパティとメソッドを持っていることを知っているElementので、それらを使用できるので便利です。宣言がただの場合、型指定された引数とメンバーのプロパティまたはメソッドpublic class Queue<E>{を使用しようとすると、それらのプロパティ/メソッドが に存在しないため、コンパイラは文句を言います。ElementEObject

于 2013-08-19T10:19:39.137 に答える
1

EジェネリックQueueクラスがインスタンス化される型は、 から継承する必要がありますElement

クラス内のコードは、クラス メソッドQueueに依存しています (呼び出しがあります) 。Element

于 2013-08-19T10:19:49.783 に答える