错误通用数组创建

IT小君   2021-11-15T13:54:03
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)
IT小君

你不能用泛型创建数组。使用Collection<Set<Hexagon>>(Array)List<Set<Hexagon>>代替。

这是正式的解释

2021-11-15T13:54:03   回复
IT小君

你不能。你能做的最好的事情就是制作一个ArrayList<Set<Hexagon>>.

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

2021-11-15T13:54:03   回复
IT小君

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

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

2021-11-15T13:54:03   回复