Java 如何正确扩展Enum
当我使用这个类时,它显示了一些错误 类别:Java 如何正确扩展Enum,java,android,enums,Java,Android,Enums,当我使用这个类时,它显示了一些错误 类别: public static final class ScreenOrientation extends Enum { private static final ScreenOrientation ENUM$VALUES[]; public static final ScreenOrientation LANDSCAPE_FIXED; public static final ScreenOrien
public static final class ScreenOrientation extends Enum
{
private static final ScreenOrientation ENUM$VALUES[];
public static final ScreenOrientation LANDSCAPE_FIXED;
public static final ScreenOrientation LANDSCAPE_SENSOR;
public static final ScreenOrientation PORTRAIT_FIXED;
public static final ScreenOrientation PORTRAIT_SENSOR;
public static ScreenOrientation valueOf(String s)
{
return (ScreenOrientation)Enum.valueOf(org/andengine/engine/options/EngineOptions$ScreenOrientation, s);
}
public static ScreenOrientation[] values()
{
ScreenOrientation ascreenorientation[] = ENUM$VALUES;
int i = ascreenorientation.length;
ScreenOrientation ascreenorientation1[] = new ScreenOrientation[i];
System.arraycopy(ascreenorientation, 0, ascreenorientation1, 0, i);
return ascreenorientation1;
}
static
{
LANDSCAPE_FIXED = new ScreenOrientation("LANDSCAPE_FIXED", 0);
LANDSCAPE_SENSOR = new ScreenOrientation("LANDSCAPE_SENSOR", 1);
PORTRAIT_FIXED = new ScreenOrientation("PORTRAIT_FIXED", 2);
PORTRAIT_SENSOR = new ScreenOrientation("PORTRAIT_SENSOR", 3);
ScreenOrientation ascreenorientation[] = new ScreenOrientation[4];
ascreenorientation[0] = LANDSCAPE_FIXED;
ascreenorientation[1] = LANDSCAPE_SENSOR;
ascreenorientation[2] = PORTRAIT_FIXED;
ascreenorientation[3] = PORTRAIT_SENSOR;
ENUM$VALUES = ascreenorientation;
}
private ScreenOrientation(String s, int i)
{
super(s, i);
}
}
扩展Enum
时,它显示类型q可能不会显式地将Enum子类化
错误
如何使用这些字段创建枚举?如何修改该类以使用像
Enum
public enum ScreenOrientation {
LANDSCAPE_FIXED("LANDSCAPE_FIXED", 0);
// other values
private final String s;
private final int i;
private ScreenOrientation(String s, int i) {
this.s = s;
this.i = i;
}
// getters for s and i
@Override
public String toString() {
return this.getS();
}
public static ScreenOrientation fromS(String s) {
for( ScreenOrientation so : values())
if(so.getS().equalsIgnoreCase(s)) {
return so;
}
throw new IllegalArgumentException();
}
}
不确定s和我的意思是什么,所以给他们起个更有意义的名字。另外,重写Javadocs中建议的toString方法:
不确定s和我的意思是什么,所以给他们起个更有意义的名字。另外,重写Javadocs中建议的toString方法:
您应该删除
扩展枚举
并将类
更改为枚举
公共静态最终枚举屏幕方向{…}谷歌的第一个答案给了我这个重复的答案:我建议你在发布问题之前做一些研究。你应该删除扩展枚举
,并将类
更改为枚举
公共静态最终枚举屏幕方向{…}谷歌的第一个答案给了我一个重复的答案:我建议你在发布问题之前做一些研究,这些问题是多余的。枚举项已经有自己的名称作为toString()值。@EJP如何知道s与name相同?OP没有提供关于s是什么的更多信息。“s”是多余的,以及与之相关的一切。枚举项已经有自己的名称作为toString()值。@EJP如何知道s与name相同?OP没有提供关于s是什么的进一步信息。