2015-07-26 5 views
1

Я импортировал проект Eclipse в Android Studio. Все в порядке, но я вижу некоторые ошибки в файле Java. Возможно, код неправильный. Я пробовал исправлять это часами, но все равно не повезло. Что не так и как это исправить?Класс ошибки Java, интерфейс ожидается

package com.newgame.gdx; 


// Referenced classes of package com.newgame.gdx: 
//   Application 

public static final class extends Enum 
{ 
    private static final iOS $VALUES[]; 
    public static final iOS Android; 
    public static final iOS Applet; 
    public static final iOS Desktop; 
    public static final iOS HeadlessDesktop; 
    public static final iOS WebGL; 
    public static final iOS iOS; 
    public static valueOf(String s) 
    { 
     return()Enum.valueOf(com/newgame/gdx/Application$ApplicationType, s); 
    } 
    public static [] values() 
    { 
     return ([])$VALUES.clone(); 
    } 
    static 
    { 
     Android = new <init>("Android", 0); 
     Desktop = new <init>("Desktop", 1); 
     HeadlessDesktop = new <init>("HeadlessDesktop", 2); 
     Applet = new <init>("Applet", 3); 
     WebGL = new <init>("WebGL", 4); 
     iOS = new <init>("iOS", 5); 
     $VALUES = (new .VALUES[] { 
      Android, Desktop, HeadlessDesktop, Applet, WebGL, iOS 
     }); 
    } 
private (String s, int i) 
    { 
     super(s, i); 
    } 
} 
+0

ошибка в каждом классе строки или интерфейсе –

ответ

3

Как уже упоминалось ранее, вы должны назвать свой класс. Но это не единственная проблема с вашим кодом.

Прежде всего, модификатор статического не допускается в классах верхнего уровня. Это ключевое слово указывает на то, что экземпляр класса может стоять сам по себе: в отличие от нестатического внутреннего класса (внутренний класс экземпляра), который не может существовать без экземпляра внешнего класса, класс верхнего уровня не имеет внешний класс, он не может быть ничего, кроме статического. Как вы можете видеть, они по умолчанию статичны, поэтому нет никакого смысла в том, чтобы такой модификатор был явно объявлен.

Во-вторых, вы определенно не должны и не может подкласс. Перечисление: они по существу преобразуются в конечный класс компилятором и поэтому не допускается наследование. Также расширяется вся идея Enums: каждый тип перечисления должен иметь только элементы, объявленные в перечислении (поэтому вы можете использовать их в операторе , например), и это невозможно, если вы разрешите расширение типа.

Если вам почему-то нужен, чтобы подражать расширению enum, вы можете попробовать что-то вроде this. Но я все еще не уверен, что это правильный способ разработки вашей функциональности.

1

Ваш Enum не имеет имени. Это должно выглядеть примерно так:

public final class MyEnum extends Enum 
{ 

Судя по содержанию, оно должно быть название что-то вроде Platform.

+1

Является ли этот декомпилированный код, случайно? Можете ли вы попытаться использовать имя 'iOS' вместо' Платформы'? – Glorfindel

+0

ya это декомпилированный код, im новый для разработки, можете ли вы рассказать мне, как исправить это простым способом? –

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