2

java中用于使字符串不可变的技术?
或者我怎样才能使我的字符串类不可变。
我只想知道这背后的逻辑。

4

2 回答 2

7

在 Java 中,String对象已经是不可变的。

我无法谈论 Java 语言的创建者是如何专门使String不可变的,但是您可以遵循以下一些准则来使自己的类不可变:

  1. 不要使用 setter 方法。
  2. 使所有字段privatefinal.
  3. 不允许方法被覆盖(创建类final或使用工厂模式)。
  4. 如果任何字段是可变类型的对象,请在使用这些对象时小心:当从 getter 方法返回这些对象或在构造函数中接收它们时,防御性地克隆它们,并且不要提供修改可变对象的方法。
于 2013-08-17T15:13:40.413 回答
2

StringJava 中的类已经是不可变的。

如需参考,请参阅http://docs.oracle.com/javase/7/docs/api/java/lang/String.html上的文档

如果想了解Java String类是如何实现的,请访问http://docjar.com/html/api/java/lang/String.java.html

于 2013-08-17T15:12:16.280 回答