java - java 类的最终字段是否应该始终是静态的?

标签 java static final

我在网上找不到任何关于此的引用资料。但只是想知道类中的最终字段是否应该始终是 static 还是只是一种约定。根据我对它们用途的理解,我觉得这更像是一种合乎逻辑的事情,而不是语言强加的事情。

最佳答案

当然不是。如果它们属于类,它们必须是静态的,如果它们属于类的实例,它们就不是静态的:

public class ImmutablePerson {
    private static final int MAX_LAST_NAME_LENGTH = 255; // belongs to the type
    private final String firstName; // belongs to the instance
    private final String lastName; // belongs to the instance

    public ImmutablePerson(String firstName, String lastName) {
        if (lastName.length() > MAX_LAST_NAME_LENGTH) {
            throw new IllegalArgumentException("last name too large");
        }
        this.firstName = firstName;
        this.lastName = lastName;
    }

    // getters omitted for brevity
}

关于java - java 类的最终字段是否应该始终是静态的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14913442/

相关文章:

java - 为什么 Java 看不到 tcpdump 显示的传入 UDP 数据包已收到?

java - 匹配测试下方法内部创建的 HttpGet 对象

java - 最终局部变量可能尚未在匿名内部类中初始化

java - 无法引用不同方法中定义的内部类内的非最终变量 lblNewLabel

java - 如何从 Java 打印到 Windows USB 打印机?

Java 8 : Class JavaLaunchHelper is implemented in both

PHP使数据库类静态化

java - 在 Java 中使用静态变量和方法的好处

java - 非静态比较器内部类

java - JButton 数组上的 ActionListener