java - 在 Java 中创建常量对象

标签 java constants final

我想知道,在 Java 中我们如何创建一个常量对象(但不是引用也不是不可变的,因为不可变性是一个类的所有对象的一个​​特性)?

首先:

final MyClass c = new MyClass();

创建对非常量对象的常量引用,因此我可以这样做:

c.setData(100);

第二:

String 类是一个所有实例都应该是常量的类(又名不可变对象(immutable对象))。我需要一种可以从常量对象和非常量对象创建的类型。


换句话说,如何将常量赋予一个类的某些对象,并将其从其他对象中移除。 (无需将此对象包装在任何包装器中)。

最佳答案

我想您想要类似于 C++ 中的 const 关键字的东西,它使本来可变的类的实例不可变。但是,在 Java 中不存在与此直接等效的内容。

如果您控制该类,您可以定义一个只公开 getter 的接口(interface),并在您需要“const”引用时使用该接口(interface)——这不需要任何包装,但如果您需要这样做会相当麻烦这适用于很多类(class)。

关于java - 在 Java 中创建常量对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8408871/

相关文章:

java - Web 容器如何处理传入请求并映射到已部署的 Web 应用程序 war

java - 比较器以错误的顺序给出数据

c++ - 里面的const变量是什么?

C++ 静态常量成员变量用法

java - 如何在匿名函数中使用计数器?

java - 使用反射设置私有(private)字段适用于静态或最终,但不适用于静态最终(组合)

java - Java中 "final class"有什么意义?

java - Java中从BufferReader读取字符字段

Java:使用次要货币符号格式化金额

php - 在 CakePHP Shell 脚本中使用全局变量