我在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 = "/";
}
}
这是最好的做法吗?有了这个,我试图将所有常数分组为单一类 这些方法的优点和缺点是什么 或者最好为不同类型的常量创建一个单独的类?
答案 0 :(得分:1)
我不喜欢这种方法,因为你的类常量不再是包路径的一部分:
my.package.path.Constants.LDAP.UID
并且仍然很难找到任何常量,因为文件可能很大。 我为每组常量/枚举创建了一个不同的文件。
答案 1 :(得分:0)
如果常量与封闭类严格关联,则可以将它们放在嵌套类中。 如果没有(如果你有至少2个不同的类,你想使用你的常量)你应该使用常量声明你的类作为顶级类,私有构造函数无法实例化这个类。