在整个应用程序中使用常量

时间:2013-07-31 05:46:48

标签: java constants

我在我的应用程序中引用的常量值很少。我正在创建一个类似下面的代码片段。

    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

提前致谢。

2 个答案:

答案 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";
.
.
.
}