[英]Naming Convention for Uninitialized Constants Java
我將我的常量命名為static final
例如ALL_UPPER_CASE
但是,有時您需要將字段用作常量,但無法將其定義為final
因為以后需要對其進行初始化。
例如:
public class ExampleClass {
public static final int MAX_LENGTH = 100;
public static int constantValue;
public ExampleClass() {
// ...
}
private static void init(boolean condition) {
if (condition) {
constantValue = 42;
} else {
constantValue = 1;
}
}
}
問題:是否有這些命名約定? 你會怎么做或去做?
我只想知道東西; 就這樣!
從技術上講, constantValue
不是常數。 它只是一個靜態字段,初始化后不會改變。 我會堅持使用Sun命名約定,並保留名稱camelCase。 但是,就您給出的情況而言,如果我絕對想表明這是一個常量,則可以創建一個枚舉:
public enum ExampleEnum {
TRUE_CONDITION(42), FALSE_CONDITION(1);
private final int value;
private ExampleEnum(int value) {
this.value = value;
}
public int getValue() {
return value;
}
}
然后ExampleClass將變為:
public class ExampleClass {
public static final int MAX_LENGTH = 100;
private static ExampleEnum myEnum;
private static void init(boolean condition) {
if (condition) {
myEnum = ExampleEnum.TRUE_CONDITION;
} else {
myEnum = ExampleEnum.FALSE_CONDITION;
}
}
public static int getConstantValue() {
return myEnum.getValue();
}
}
這樣,您會感覺到您正在使用常量,並且不會破壞封裝。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.