gpt4 book ai didi

java - 类中的 Getter 模式?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:33:00 25 4
gpt4 key购买 nike

我在类中有一个字段只能直接从 getter 访问。举个例子……

public class CustomerHelper {
private final Integer customerId;
private String customerName_ = null;

public CustomerHelper(Integer customerId) {
this.customerId = customerId;
}

public String getCustomerName() {
if(customerName_ == null){
// Get data from database.
customerName_ = customerDatabase.readCustomerNameFromId(customerId);
// Maybe do some additional post-processing, like casting to all uppercase.
customerName_ = customerName_.toUpperCase();
}
return customerName_;
}

public String getFormattedCustomerInfo() {
return String.format("%s: %s", customerId, getCustomerName());
}
}

因此,即使在类本身内部,像 getFormattedCustomerInfo 这样的函数也不应该能够通过 customerName_ 访问它。除了提供的 getter 函数之外,是否有办法强制类不直接访问字段?

最佳答案

Java中没有这样的机制(或者至少我认为不应该有)。如果您确定应禁止 getFormattedCustomerInfo 直接访问 customerName_,请创建另一个类并组合它们。

我会推荐 CustomerInfoFormatter

此外,我会将 customerName_ 更改为 customerName,因为该语言通过显式声明支持隐私,不需要添加更多指示符。

关于java - 类中的 Getter 模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50145261/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com