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

标签 java variables constants

我有一个类,里面有一些小类,它们充当常量的“存储单元”。问题是,我需要一些信息来为这些常量赋值,而我只能在构造函数中获得该信息。不幸的是,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/

相关文章:

java - 将所有常量放在一个类android中

python - 创建一个独特的虚拟对象

c# - 声明一个常量数组

java - 使用基本身份验证通过 WebServiceContext 获取密码凭据

java - 使用 JavaFX 时应用程序构造函数中出现异常

jquery - 您可以从 img src 请求/获取变量吗?

variables - Jmeter 将变量设置为属性的默认值

javascript - Node.js - 如何从文件读取数据并将输出集成到变量中

java - 从网站获取超链接

Java:文件到十六进制?