Java类中常量的使用
我有一个Request类,它有许多final和not final字段 它只用于一种类型的请求。 但是服务,, 它被发送到的目的地, 需要代码来区分操作类型。 我创建了一个常量,该常量将在每次使用Request类进行初始化。 例如:Java类中常量的使用,java,coding-style,constants,Java,Coding Style,Constants,我有一个Request类,它有许多final和not final字段 它只用于一种类型的请求。 但是服务,, 它被发送到的目的地, 需要代码来区分操作类型。 我创建了一个常量,该常量将在每次使用Request类进行初始化。 例如: public class Request { @JsonProperty("const") private static final String CONSTANT = "field" @JsonProperty("data") private i
public class Request {
@JsonProperty("const")
private static final String CONSTANT = "field"
@JsonProperty("data")
private int data;
public String getConstant() {
return CONSTANT;
}
public int getData() {
return this.data;
}
}
我考虑在构造函数内部初始化它,或者显式地使用操作代码作为构造函数的参数,
尽管它永远不会改变。
它应该是静态的吗
问题是,,
在这种情况下,最佳做法是什么?静态和最终是两件完全不同的事情:
静态
应用于在特定类型(类
)的所有实例(对象
)之间共享的内容
将字段声明为final
将确保该字段为常量且不能更改
在您的情况下,在所有实例中共享变量没有问题,因此根据最佳实践,将其声明为
static final
不会有问题。对于此类字段,我更喜欢使用枚举常量并通过构造函数/生成器模式初始化常量字段。仅为此类常量字段提供Getter方法。我认为当前的编码方式没有问题。static final将完成您试图完成的任务。最好将其定义为public static final String CONSTANT=“field”,然后将其定义为Request.CONSTANT。你不需要一个getter。