Это мой enmun классEnum со строками
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 в классе enum (мне нужен String для методов setStyle()
в JavaFX), так что мне не нужно всегда писать CSSFont.object.getFont()
, а скорее CSSFont.object
? Я попытался позволить CSSFont расширять String, но, очевидно, перечисления могут реализовывать только интерфейсы. Или это единственное решение для создания класса со статическими (конечными) атрибутами String?
EDIT: Спасибо всем, кажется, я не был уверен, когда использовать перечисления, а когда нет, так как у меня есть только один атрибут (String), и мне даже не нужно перечислять или сравнивать эти объекты перечисления, Я буду использовать класс со статическими конечными строковыми атрибутами;).
кажется, что вы на самом деле хотите, представляет собой набор констант String. Не указано. –
Просто '@Override toString()' ... P.S. поскольку константы enum' неявно подразумевают стандартные соглашения об именовании «public static final» - например, «UPPER_UNDERSCORE», а не 'PascalCase'. –
@JB Nizet да, но это не переименование именно это? Фиксированный набор конечных атрибутов? Множество строковых констант в отдельном классе было также моим предложенным решением выше, но я скорее хотел использовать enumn, потому что на самом деле это перечисление, не так ли? – New2HTML