今天,我发现自己编写了这样的代码......
public class LocalEnums {
public LocalEnums() {
}
public void foo() {
enum LocalEnum {
A,B,C
};
// ....
// class LocalClass { }
}
}
Run Code Online (Sandbox Code Playgroud)
当编译器报告本地错误时,我有点惊讶enum:
成员枚举LocalEnum不能是本地的
为什么枚举不能像类一样在本地声明?
我发现这在某些情况下非常有用.在我工作的情况下,其余的代码不需要知道任何关于enum.
是否有任何结构/设计冲突可以解释为什么这是不可能的,或者这可能是Java 的未来特性?
我有一个enum性别的类人员,在Person Constructor中我想初始化性别和年龄.如何在main()方法中实例化一个新Person?
class Person {
public enum Gender { M,F }
int age;
Gender gender;
public Person(int age, Gender gender) {
this.age=age; this.gender=gender;
}
}
public static void main(String[] args) {
Person p = new Person(20, ?);
}
Run Code Online (Sandbox Code Playgroud)
最好的祝福.