2013-03-31 64 views
0

下面的java代码不能在eclipse中编译。我在这里做错了什么?如果该方法只返回int而不是enum,则一切正常,因此它基本上设置正常。问题在于引入枚举返回类型。为什么这个枚举类型没有正确解析?

public class myclass { 
    public enum mytype { 
     mytype2, 
     mytype1, 
    }; 
    public static mytype retmytype() { 
    return mytype2; 
    } 
} 

//in another class 
myclass.mytype t = myclass.retmytype(); //ERROR - myclass.mytype cannot be solved 
+1

使用'camelCase'男人! –

+0

@LuiggiMendoza内部枚举总是静态的,即使没有指定 – Daniel

+0

@Luiggi门多萨如果一个枚举是一个类的成员,它是隐式静态的 – Mik378

回答

1

尝试通过return mytype.mytype2;

更换return mytype2;顺便说一句,你应该遵循Java的命名约定;)

我想你忘记了一个主要方法(或程序中的流中的任何其他调用的方法)。 试试这个:

public class myclass { 
    public enum mytype { 
     mytype2, 
     mytype1, 
    }; 
    public static mytype retmytype() { 
    return mytype.mytype2; 
    } 
    public static void main(String[] args){ 
    myclass.mytype t = myclass.retmytype(); 
    } 
} 
+0

同样的问题。该错误在呼叫者级别被标记。 – glutz

+0

@glutz例如,您可能忘记用主要方法来包围您的呼叫;)。你可能会“打电话”。 – Mik378

+0

@glutz我更新了我的答案。 – Mik378