0

ジェネリック配列を作成しようとしましたが、タイトルのエラーが発生しました。

 ByteConverter<Product> byteconverter = new ByteConverter<Product>();

 //into an inner class I have to declare a final field 
 final ByteConverter<Product>[] byteconverter2 = {byteconverter};

そこで、Stackoverflowで可能な解決策を探しました。私はここで似たようなものを見つけました:JavaでLinkedListsの配列を作成することはできません...?、コードを次のように変更しました。

 final ByteConverter<Product>[] byteconverter2 = {(ByteConverter<Product>[])byteconverter};

しかし、私はまだ同じエラーを取ります。理由がわかりません。何か助けてください。

4

2 に答える 2

2
final ByteConverter<Product>[] byteconverter2 = 
   new ByteConverter[]
   {
      byteconverter   
   };

これはうまくいきます

于 2012-12-12T15:07:25.907 に答える
1

これはコンパイルされますが、警告が表示されます

    ByteConverter<Product> byteconverter = new ByteConverter<Product>();
    ByteConverter<Product>[] byteconverter2 = new ByteConverter[] { byteconverter };

ジェネリックの制限については、http://docs.oracle.com/javase/tutorial/java/generics/restrictions.htmlを参照してください。

于 2012-12-12T15:18:16.160 に答える