Вопрос по java – Ошибка создания универсального массива

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

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

Ваш Ответ

3   ответа
5

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

Вотформальное объяснение.

2

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

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

0

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

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

Похожие вопросы