Java错误类,预期接口

时间:2015-07-26 10:47:33

标签: java android android-studio

我将一个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);
    }
}

2 个答案:

答案 0 :(得分:3)

如前所述,你应该为你的班级命名。但这不是您的代码唯一的问题。

首先,顶级类中不允许使用 static 修饰符。 这个关键字指的是这样一个类的实例可以独立存在的事实:与非静态内部类(实例内部类)不同,如果没有外部类的实例就不能存在,顶级类没有外在的,它不可能是静止的。正如您所看到的,默认情况下它们是静态的,所以在这样的修饰符中没有明确宣布这一点。

其次,你绝对不应该和不能继承Enum:它们实际上是由编译器转换为最终类,因此不允许继承。同样扩展面对Enums的整个想法:每个枚举类型应该只包含在枚举中声明的元素(例如,你可以在开关语句中使用它们),如果你这是不可能的允许扩展类型。

如果由于某种原因需要模仿枚举扩展,您可以尝试使用this之类的内容。 但我仍然不确定这是设计功能的正确方法。

答案 1 :(得分:1)

您的Enum没有名字。它应该看起来像:

public final class MyEnum extends Enum
{

从内容来看,它的名称应该是Platform