我是 Java 的初学者(Objective-C 是我最熟悉的语言),我真的很难找到一个清晰的例子来说明我想要实现的目标:
public class OuterClass extends ClassToExtend {
public enum Enum { value1, value2 }
public class InnerClass extends AnotherClassToExtend {
public void aMethod(int position) {
switch (position) {
case Enum.value1:
//Do something
case Enum.value2:
//Do Something else
}
}
}
}
显然这行不通(对枚举的引用),但应该让我了解我正在尝试做什么,需要更改什么才能使这项工作正常进行? 我想我需要在某处声明枚举以引用它?
我将不胜感激对更正的解释,以便我可以学习并希望在未来为自己解决类似的困难。
谢谢
编辑如果方法是@Override 并且签名无法更改怎么办?
最佳答案
首先,您必须打开枚举本身,因此您需要更改以下行:
public void aMethod(int position) {
接受您的枚举而不是整数。其次,需要在开关中直接引用枚举的值,因为枚举已经在当前对象的范围内。
public class OuterClass extends ClassToExtend {
public enum Enum { value1, value2 };
public class InnerClass extends AnotherClassToExtend {
public void aMethod(Enum position) {
switch (position) {
case value1:
//Do something
case value2:
//Do Something else
}
}
}
}
关于Java 枚举和嵌套类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15814872/