2012-03-15 4 views
0

objQueueを定義することによっても同じ結果が得られます。タイプキューは一般的ではありません。引数でパラメータ化することはできません<Customer>

public class objQueue extends Vector<Object> 
{ 
... 
} 

... 

objQueue<Customer>[] line=new objQueue<Customer>[num]; //error given on this line 

私は公共class objQueue<Object> extends Vector<Object>にそれを変更しましたが、今ではCannot create a generic array of objQueue<Customer>言います。自分のキューを定義したいのですが、競合を避けるためにキューなどの名前を付ける必要がありますか?私はobjQueue<Customer> [] line=new objQueue[num];に変更した場合、それは代わりに警告を与えるimport java.util.*;

を使用しています:型の安全性を:タイプobjQueueの発現は、[] objQueueに準拠するように未チェックの変換を必要とします[]

答えて

6

をそれはQueueため問題ないはずです、あなたはjava.util.Queueを意味すると仮定します。 objQueueの型引数を指定することはできません。は、汎用であると宣言されたではありません。

public class ObjQueue<E> extends Vector<E> 

などと宣言する必要があります。

+0

私はobjQueue publicクラスにそれを変更Vector を拡張しましたが、objQueueの汎用配列を作成できません。自分のキューを定義したいのですが、競合を避けるためにキューなどの名前を付ける必要がありますか? import java.util。*;を使用しています。 – user93200

+0

これを 'objQueue [] line = new objQueue [num];に変更すると、代わりに警告が表示されます。型安全性:objQueue []型の式は、objQueueに適合するように未確認の変換が必要です [] – user93200

+0

exact Jonはあなたに 'ObjQueue extend Vector 'を与えました。 –

0

あなたが一般的なように型を宣言する場合、それは通常、以下のように定義されます。

class Shop <P> 
{//P = Product 
P p; 
public Shop(P p) { 
this.p = p; 
} 
... 
} 

は、このために行動しない拡張..

関連する問題