错误通用数组创建

时间:2010-10-11 02:31:37

标签: java

public class TwoBridge implements Piece{
    private HashSet<Hexagon>[] permutations;

    public TwoBridge(){
        permutations = new HashSet<Hexagon>[6];

嗨,我正在尝试创建一组六边形集合(六边形是我创建的一个类)。

但是当我尝试编译

时,我收到此错误
oliver@oliver-desktop:~/uni/16/partB$ javac oadams_atroche/TwoBridge.java 
oadams_atroche/TwoBridge.java:10: generic array creation
        permutations = new HashSet<Hexagon>[6];
                       ^
1 error

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:5)

您无法使用泛型创建数组。请改用Collection<Set<Hexagon>>(Array)List<Set<Hexagon>>

这是formal explanation

答案 1 :(得分:2)

你做不到。您可以做的最好的事情是ArrayList<Set<Hexagon>>

如果您愿意处理原始类型(非常不鼓励),您可以创建一个Set数组(而不是Set<Hexagon>,这是不允许的)。但你没有听到我的消息。

答案 2 :(得分:0)

以下会给你一个警告: permutations = new HashSet[6];

但是,我同意Chris的观点,最好使用ArrayList而不是普通数组。