2012-03-25 1 views
1
Stack<E>[] stacks = {new Stack<Bed>(), new Stack<Bookshelves>(), 
        new Stack<Chair>(), new Stack<Desk>(), new Stack<Table>()}; 

クラスでは、私が指定したオブジェクトを取り込む独自のスタッククラスを作成する必要がありました。 仕様に従って、すべてのスタックを配列に配置する必要があります。ジェネリックスタックの配列を作成する

しかし、スタックの配列を作成しようとすると、「シンボルを見つけることができません:クラスE」エラーが発生します。

ジェネリックスタックの配列を作成するにはどうすればよいですか?このよう<として

+2

ジェネリックの配列を作成することはできません。もしあなたができるのであれば、それで何をしたいですか? –

+2

ほとんどの場合、 'Stacks'の' List'を作る方が良いでしょう。 (あなたの特別なケースでは、まったく配列やリストを作成すべきではないと思っていますが、異なるタイプのリストを明示的に別々の変数にしておくべきです。) –

答えて

6

ジェネリック型宣言E >だけで、あなたがやっているようにスタックの配列を作成するには

public class Stack<E>{ 
// etc. 
} 

のように、クラスを定義しているとき、あなたは一般的なワイルドカードを使用することができますいずれかの動作:

またはスタック内のすべてのオブジェクトが共通の継承を共有する場合、あなたは

のようなものでワイルドカードを絞り込むことができ
+1

'Stack []' <?家具> [] 'は、一般的な配列を作成することができないので、少なくともその素敵な短い構文では作成できません:/ –

+0

ありがとう! – prunes4u

関連する問題