在静态嵌套类中定义常量

时间:2014-03-21 11:10:11

标签: java

我在Static Nested Class中定义常量

public final class Constants {

public static final class LDAP {
    public static final String BASE_DN = "dc=example,dc=com";
    public static final String OU = "ou";
    public static final String CN = "cn";
    public static final String SN = "sn";
    public static final String GID_NUMBER = "gidNumber";
    public static final String UID_NUMBER = "uidNumber";
    public static final String HOME_DIRECTORY = "homeDirectory";
    public static final String UID = "uid";
    public static final String TELE_PHONE_NUMBER = "telephoneNumber";
    public static final String USER_PASSWORD = "userPassword";

    public static final String OBJECT_CLASS = "objectclass";
    public static final String OBJECT_CLASS_TOP = "top";
    public static final String OBJECT_CLASS_PERSON = "person";
    public static final String OBJECT_CLASS_POSIX_ACCOUNT = "posixAccount";
}

public static final class GenericStringConstan {
    public static final String EMAIL_REPLACE_CHAR_FROM = "@";
    public static final String EMAIL_REPLACE_CHAR_TO = "__";
    public static final String BACK_SLASH = "/";
    public static final String FORWARD_SLASH = "/";

}

}

这是最好的做法吗?有了这个,我试图将所有常数分组为单一类 这些方法的优点和缺点是什么 或者最好为不同类型的常量创建一个单独的类?

2 个答案:

答案 0 :(得分:1)

我不喜欢这种方法,因为你的类常量不再是包路径的一部分:

my.package.path.Constants.LDAP.UID

并且仍然很难找到任何常量,因为文件可能很大。 我为每组常量/枚举创建了一个不同的文件。

答案 1 :(得分:0)

如果常量与封闭类严格关联,则可以将它们放在嵌套类中。 如果没有(如果你有至少2个不同的类,你想使用你的常量)你应该使用常量声明你的类作为顶级类,私有构造函数无法实例化这个类。