如何解决稍后如何在此处初始化final?
所以在读书时,我遇到了这段代码。
public class NutritionFacts {
private final int servingSize; // (mL) required
private final int servings; // (per container) required
private final int calories; // (per serving) optional
private final int fat; // (g/serving) optional
private final int sodium; // (mg/serving) optional
private final int carbohydrate; // (g/serving) optional
public NutritionFacts(int servingSize,int servings) {
this(servingSize,servings,0);
}
public NutritionFacts(int servingSize,int servings,int calories) {
this(servingSize,calories,int calories,int fat) {
this(servingSize,fat,int fat,int sodium) {
this(servingSize,sodium,0);
public NutritionFacts(int servingSize,int sodium,int carbohydrate) {
this.servingSize = servingSize;
this.servings = servings;
this.calories = calories;
this.fat = fat;
this.sodium = sodium;
this.carbohydrate = carbohydrate;
}
}
因此,在这里,最终关键字在营养名称之前使用。但是它们也在代码的后面部分中初始化。那可能吗?因为一旦将变量标记为final,就无法在以后初始化。
解决方法
final
关键字表示属性值只能设置一次。这是这种情况,因为您仅在构造函数中设置了值。因此,这是有效的代码。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。