2014-01-20 2 views
0

У меня проблема с разрешающим перечислением.перечисление не может быть разрешено в Java

Я проверил предыдущие ответы, как why enum could not be resolved in JAVA?

и я сделал ответ, но я все еще получаю ошибку. также выполнил другое решение, чтобы изменить уровень соответствия компилятора. но в моем случае он первоначально установлен в 1.6

Что здесь нужно изменить?

Код:

CellTypes.java

public enum CellTypes { 
    STRING,LIST,PATH 
} 

в случае CanModify который перекрываться

убывание:

/** * @see org.eclipse.jface .viewers.ICellModifier # canModify (java.lang.Object, * java.lang.String) */

просто вызов метода setEditor и setEditor следующим

public void setEditor(int editorIndex, List<Object> choices, CellTypes UIType) { 
    try { 
    if (choices != null) { 
     String[] choicesArray = new String[choices.size()]; 
     for (int i = 0; i < choices.size(); i++) { 
      choicesArray[i] = choices.get(i).toString(); 

    } 
    editors[editorIndex] = new ComboBoxCellEditor(table, choicesArray, SWT.READ_ONLY); 
    editors[editorIndex].getControl().addTraverseListener(traverseListener); 
    columnEditorTypes[editorIndex] = EditorTypes.COMBO; 

    } else if(UIType == CellTypes.PATH) {  // it gives "cannot resolve type " here 
    editors[editorIndex] = standardEditors.get(EditorTypes.PATH); 
    columnEditorTypes[editorIndex] = EditorTypes.PATH; 
    } 
    else 
    { 
    editors[editorIndex] = standardEditors.get(EditorTypes.STRING); 
    columnEditorTypes[editorIndex] = EditorTypes.STRING; 
    }} 
    catch(Exception e) 
    { 
    e.printStackTrace(); 
    } 

}

вызывает погрешность не может решить CellTypes типа где кт признается перечисление и его тип STRING

+2

где ваш код? –

+3

Укажите код и сообщение об ошибке, которое вы получите. –

+0

в порядке. дайте мне 1 минуту: D - из предыдущих ответов. Я думал, что это известная проблема затмения. – becks

ответ

1

Изменить

if (ct = CellTypes.STRING) 

до

if (ct == CellTypes.STRING) 

Вы назначаете iso. сравнения.

+1

извините, это была ошибка. Это уже == в коде .. просто ошибся здесь – becks

1

Если вы правильно поняли, вы сравниваете имя значения перечисления String с значением перечисления. Попробуйте следующее:

if (CellTypes.valueOf(ct) == CellTypes.STRING) 
+0

valueOf (String) - принимает только строку . ct здесь enum not a string – becks

+0

Опубликуйте свой полный код. – everton

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