我将一个Eclipse项目导入Android Studio。一切都很好,但我在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)
如前所述,你应该为你的班级命名。但这不是您的代码唯一的问题。
首先,顶级类中不允许使用 static 修饰符。 这个关键字指的是这样一个类的实例可以独立存在的事实:与非静态内部类(实例内部类)不同,如果没有外部类的实例就不能存在,顶级类没有外在的,它不可能是静止的。正如您所看到的,默认情况下它们是静态的,所以在这样的修饰符中没有明确宣布这一点。
其次,你绝对不应该和不能继承Enum:它们实际上是由编译器转换为最终类,因此不允许继承。同样扩展面对Enums的整个想法:每个枚举类型应该只包含在枚举中声明的元素(例如,你可以在开关语句中使用它们),如果你这是不可能的允许扩展类型。
如果由于某种原因需要模仿枚举扩展,您可以尝试使用this之类的内容。 但我仍然不确定这是设计功能的正确方法。
答案 1 :(得分:1)
您的Enum
没有名字。它应该看起来像:
public final class MyEnum extends Enum
{
从内容来看,它的名称应该是Platform
。