【发布时间】:2016-06-18 12:06:48
【问题描述】:
这是我的 enmun 课
public enum CSSFont {
RezeptName("-fx-font: 22 calibri;"),
RezeptNameClicked("-fx-font: 22 calibri; -fx-underline: true; -fx-text-fill: purple"),
RezeptTab("-fx-font: 15 calibri;");
private String font;
private CSSFont(String s) {
this.font = s;
}
public String getFont() {
return this.font;
}
}
如您所见,我创建了一个 getFont() 函数来获取每个 CSSFont 对象的字符串。有没有办法直接在枚举类中创建String对象(我需要JavaFX中setStyle()方法的String),这样我就不必总是写CSSFont.object.getFont()而是CSSFont.object?我试图让 CSSFont 扩展 String,但显然枚举只能实现接口。或者是创建具有静态(最终)字符串属性的类的唯一解决方案?
编辑:谢谢大家,我似乎不太确定什么时候使用枚举,什么时候不使用,因为我只有一个属性(字符串)而且我什至不需要枚举或比较这些枚举对象,我将使用具有静态最终字符串属性的类;)。
【问题讨论】:
-
看来你真正想要的是一组字符串常量。不是枚举。
-
只是
@Override toString()...因为enum常量是隐式的public static final标准命名约定适用 - 即UPPER_UNDERSCORE而不是PascalCase。 -
@JB Nizet 是的,但枚举不正是这样吗?一组固定的最终属性?单独类中的一组字符串常量也是我上面建议的解决方案,但我更想使用枚举,因为这实际上就是枚举的用途,不是吗?
-
试试 psf String 放松一下。样板代码将减少 3 倍。
-
没有。枚举是一个类。它定义了一个类型。它的成员是这个类的实例。它们具有可比性并具有序数。如果你不需要这些特性中的任何一个,而只需要一堆常量字符串,那么定义一堆常量字符串。