我经常看到人们使用内部枚举,例如:
public class Person {
enum Gender {
MALE,
FEMALE,
OTHER
}
...
}
Run Code Online (Sandbox Code Playgroud)
我不确定它内部是如何工作的,所以我想知道每次有人创建一个新人时是否会有这个枚举类的新实例,例如new Person()?
内部枚举会继续消耗更多内存还是只有一个?
跟进:只需在代码编辑器(Java 11)中对接受的答案进行快速测试:
public class Person {
String name;
int Age;
Address address = new Address();//Usual way we see
public class Address {
String city;
String Country;
int number;
}
}
public class test {
public static void main(String[] args) {
var a = new Person.Address();//complains "innerclass.Person' is not an enclosing class, make Address Static"
var p = new Person();
var a1 …Run Code Online (Sandbox Code Playgroud)