gpt4 book ai didi

java - 接口(interface)中有更多枚举

转载 作者:太空宇宙 更新时间:2023-11-04 06:30:15 24 4
gpt4 key购买 nike

检查这个例子:

public interface IConstants {

public enum Levels {
LOW("30 points"), MEDIUM("50 points")

};

public enum Cars {
PORSCHE("250 km/h"), FORD("180 km/h")
}

}

我想要一个像这样的界面,因为我想以这种方式访问​​我的枚举:

    String level = IConstants.Levels.MEDIUM;
String car = IConstants.Cars.PORSCHE;

编译器显示此消息:

constructor IConstants."enum name" is undefined.

这样解决:

 public class Constants {

public static class Levels {
public static String LOW = "30 points";
public static String MEDIUM = "50 points";
};

//... other classes

}

- 对我来说很有用(我的情况),在我的常量中有一棵“树”,每个常量都以关键字 Constants 开头,然后是子类别,然后是值 -> Constants.Levels.LOW。//如果这是非常糟糕的做法,请批评它,我同意所有评论-另一个可能是好事,一个类中将包含所有常量

最佳答案

就像蜘蛛鲍里斯在评论中告诉你的那样,在接口(interface)中声明常量是一种反模式。然而,您的问题来自于您将 String 传递给枚举的任何实例,但您没有为此声明构造函数

public enum Levels {
LOW("30 points"), MEDIUM("50 points")

private final String pts;
private Levels(String pts) {
this.pts = pts;
}

public String getPoints() {
return pts;
}

};

这应该有效。

关于java - 接口(interface)中有更多枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26201901/

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