gpt4 book ai didi

java - 枚举上的调用方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:48:44 26 4
gpt4 key购买 nike

public enum AgeGroup {
CHILD{
public int get(){
return 10;
}
},
TEEN, YOUNG, MID, OLD;
}

我有一个枚举 AgeGroup,如您所见,CHILD 有一个方法 get()。有人能告诉我为什么我们不能从 CHILD 调用 get() 这背后的设计方法是什么或者为什么要这样设计?

最佳答案

首先,枚举的所有实例都是相同类型,这意味着所有实例都具有相同的方法集。

您需要在枚举类型本身上声明一个方法,以便实例拥有一个方法:

public enum AgeGroup {
CHILD{
public int get(){
return 10;
}
},
TEEN, YOUNG, MID, OLD;
public int get() {
return 0;
}
}

如果所有实例都像 CHILD 那样覆盖了 get() 方法,您可以将该方法声明为 abstract,这会强制编码器如果添加了新实例,则实现该方法。

最好的方法是使用 final 字段,通过自定义构造函数和 getter 进行初始化:

public enum AgeGroup {
CHILD{10), TEEN(19), YOUNG(35), MID(50), OLD(80);
private final int age;
AgeGroup(int age) {
this.age = age;
}
public int get() {
return
}
}

关于java - 枚举上的调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19485111/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com