我在我的应用程序中引用的常量值很少。我正在创建一个类似下面的代码片段。
public class Styles {
public static final String tableStyle = "TableGrid";
public static final String fontFamily = "Calibri";
public static final String headerStyle = "Heading2";
public static final String footerStyle = "Heading3";
public static final String tableHeaderStyle = "Heading1";
public static final String tableDataFontFamily = "Cambria";
public static final int tableHeaderFontSize = 16;
public static final int tableDataFontSize = 12;
}
我正在分配其中的值,我将它们称为Styles.headerStyle
。我怀疑的是,这是好方法还是有更好的方法来实现这一目标?类似于Enum
?
提前致谢。
答案 0 :(得分:2)
这取决于应用程序的性质,在大多数情况下,以这种方式获得常量集合并不是一个好习惯,但在不知道应用程序的上下文的情况下很难判断。顺便说一句,确定你永远不会(或几乎从不)改变像“fontFamily”这样的东西?
当然,枚举会更简洁,功能更强:
public enum Styles {
TABLE_STYLE("TableGrid"),
FONT_FAMILY("Calibri"),
HEADER_STYLE("Heading2"),
FOOTER_STYLE("Heading3"),
TABLE_HEADER_STYLE("Heading1"),
TABLE_DATA_FONT_FAMILY("Cambria"),
TABLE_HEADER_FONT_SIZE("16"),
TABLE_DATA_FONT_SIZE("12");
private String value;
private Styles(String value) {
this.value = value;
}
public String getStringValue() {
return value;
}
public int getIntValue() {
return Integer.valueOf(value);
}
}
答案 1 :(得分:2)
1)您可以将外部文件用作Property File
。
2)你可以使用enum作为@morgano回答
3)我会将你的班级声明改为
public final class Styles { // final class can't have childs
private Styles(){} // you cannot instanciate
public static final String tableStyle = "TableGrid";
.
.
.
}