gpt4 book ai didi

java - 单独声明并分配给最终变量 - Java

转载 作者:行者123 更新时间:2023-11-29 10:04:44 25 4
gpt4 key购买 nike

我有一个类,里面有一些小类,它们充当常量的“存储单元”。问题是,我需要一些信息来为这些常量赋值,而我只能在构造函数中获得该信息。不幸的是,miniclass 没有在构造函数中声明,NetBeans 告诉我不能分配给 final 变量,即使它只是被声明,没有被初始化。我该怎么办?

编辑:一些可能有此问题的代码示例:

public class Car {
class constants {
public final String MAKE;
public final String REGISTRATION_NUMBER;
}
public Car(String make, String regNumber) {
constants.MAKE = make;
constants.REGISTRATION_NUMBER = regNumber;
}
}

最佳答案

您尝试执行的操作无法正常工作,因为您在某处需要一个Constants 类的实例。一种方法是按照下面的方式做,但是那个常数没有任何常数......

public class Car {
class Constants {
public final String MAKE;
public final String REGISTRATION_NUMBER;
private Constants(String make, String regNumber) {
this.MAKE = make;
this.REGISTRATION_NUMBER = regNumber;
}
}

public final Constants constants;
public Car(String make, String regNumber) {
this.constants = new Constants(make, regNumber);
}
}

然后你可以调用:

Car car = new Car("abc", "def");
String make = car.constants.MAKE;

注意:一个可能更好(也更简单)的设计是

public class Car {
private final String make;
private final String regNumber;

public Car(String make, String regNumber) {
this.make = make;
this.regNumber = regNumber;
}

//getters
}

关于java - 单独声明并分配给最终变量 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12373673/

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