2015-02-16 6 views
-1

Я пытаюсь установить Cell в переменную ONE, которую я поместил в класс enum, но он говорит: «ОДИН не может быть разрешен или это не поле», то такое же сообщение встречается все над моим кодом, когда я пытаюсь установить Cell.ONE или Cell.TWO, ничего не работает, но у него нет проблем с установкой GameStatus ... Я не вижу, как, когда я использую перечисление GameStatus, он работает, а класс Cell - т. Есть идеи? Вот мой код:сообщение об ошибке при использовании переменных установки с классом enum

// No imports 

private Cell[][] board; 
private Cell turn; 
private int size; 
private GameStatus status; 

public enum Cell { 
    ONE, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE, EMPTY 
} 

public enum GameStatus { 
    PLAYER1_WON, PLAYER2_WON, PLAYER3_WON, PLAYER4_WON, PLAYER5_WON, 
    PLAYER6_WON, PLAYER7_WON, PLAYER8_WON, PLAYER9_WON, TIE, 
    IN_PROGRESS 
}  

public SurroundGame(int size) { 
     status = GameStatus.IN_PROGRESS; 
     board = new Cell[size][size]; 
     turn = Cell.ONE; *ONE cannot be resolved or it is not a field* 
     reset(); 
    } 
+1

Возможно ли, что вы 'import'-ки неправильно' Cell '? – ruakh

+0

Не могли бы вы высказать свои заявления 'import'? Я подозреваю, что вы импортировали еще один класс под названием «Cell» – chiwangc

+0

Пожалуйста, покажите свой импорт и покажите свое точное сообщение об ошибке. Что он говорит в консоли? – Connorelsea

ответ

0

Cell не necesserily быть предварительно объявлена ​​как class для этой ошибки произойти. Это может быть, скажем, поле:

GameStatus Cell; 

public SurroundGame(int size) { 
    status = GameStatus.IN_PROGRESS; 
    board = new Cell[size][size]; 
    turn = Cell.ONE; /*ONE cannot be resolved or it is not a field*/ 
} 

Аналогичная ошибка.

Проверьте и проверьте все свои поля. Скорее всего, у вас есть один класс, который называется Cell.

+0

Я на 100% уверен, что есть никакая другая переменная ячеек в любом месте моего кода –

0

Вот мой полный класс я принес, в случае, если это поможет вам каким-то образом, она прекрасно работает для меня ...

public class Answer28535890 { 

public static class SurroundGame 
{ 
    private Cell[][] board; 
    private Cell turn; 
    private int size; 
    private GameStatus status; 

    public enum Cell { 
     ONE, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE, EMPTY 
    } 

    public enum GameStatus { 
     PLAYER1_WON, PLAYER2_WON, PLAYER3_WON, PLAYER4_WON, PLAYER5_WON, 
     PLAYER6_WON, PLAYER7_WON, PLAYER8_WON, PLAYER9_WON, TIE, 
     IN_PROGRESS 
    }  

    public SurroundGame(int size) { 
      status = GameStatus.IN_PROGRESS; 
      board = new Cell[size][size]; 
      turn = Cell.ONE; 
      reset(); 
    } 

    public void reset() 
    { 

    } 

    public Cell getTurn() 
    { 
     return turn; 
    } 
} 

public static void main(String[] args) 
{ 
    SurroundGame sg = new SurroundGame(3); 
    System.out.println(sg.getTurn()); 
} 

} 
+0

Я также могу переместить Enums, отдельные классы enum в общем файле или даже отдельные файлы классов в пакете. Единственный раз, когда я попал в проблему, - это если я вывожу их из пакета и не включаю импорт. – Michael

+0

Это работает, когда это так, но мои классы Cell и Gamestatus находятся в отдельных файлах проекта, это должно быть так, потому что они оба доступны в других классах помимо класса SurroundGame. –

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