无法在Java中创建通用数组

时间:2012-12-12 15:06:00

标签: java

我尝试创建一个通用数组,但我正在考虑标题的错误。

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

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

所以,我在Stackoverflow上搜索了一个可能的解决方案。我在这里发现了类似的内容:Cannot create an array of LinkedLists in Java...?,因此我将代码添加到以下内容中:

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

但我仍然采取同样的错误。我不明白为什么..请帮忙吗?

2 个答案:

答案 0 :(得分:2)

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

这很好用

答案 1 :(得分:1)

这会编译,但会发出警告

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

请在此处阅读http://docs.oracle.com/javase/tutorial/java/generics/restrictions.html有关泛型的限制