2010-10-11 2 views
2
public class TwoBridge implements Piece{ 
    private HashSet<Hexagon>[] permutations; 

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

Привет, Я пытаюсь создать массив наборов шестиугольников (шестиугольники - это класс, который я создал).Ошибка создания генерируемого массива

Однако я получаю эту ошибку, когда я пытаюсь скомпилировать

[email protected]:~/uni/16/partB$ javac oadams_atroche/TwoBridge.java 
oadams_atroche/TwoBridge.java:10: generic array creation 
     permutations = new HashSet<Hexagon>[6]; 
        ^
1 error 

Как я могу решить эту проблему?

ответ

5

Вы не можете создавать массивы с помощью дженериков. Вместо этого используйте Collection<Set<Hexagon>> или (Array)List<Set<Hexagon>>.

Вот formal explanation.

2

Вы не можете. Лучшее, что вы можете сделать, это сделать ArrayList<Set<Hexagon>>.

Если вы готовы иметь дело с сырыми типами (которые сильно обескуражены), вы можете сделать массив Set (в отличие от Set<Hexagon>, что не допускаются). Но ты не слышал этого от меня.

0

После даст вам предупреждение: permutations = new HashSet[6];

Однако, я согласен с Крисом, что лучше использовать ArrayList вместо обычного массива.

Смежные вопросы