java中用于使字符串不可变的技术?
或者我怎样才能使我的字符串类不可变。
我只想知道这背后的逻辑。
问问题
758 次
2 回答
7
在 Java 中,String
对象已经是不可变的。
我无法谈论 Java 语言的创建者是如何专门使String
不可变的,但是您可以遵循以下一些准则来使自己的类不可变:
- 不要使用 setter 方法。
- 使所有字段
private
和final
. - 不允许方法被覆盖(创建类
final
或使用工厂模式)。 - 如果任何字段是可变类型的对象,请在使用这些对象时小心:当从 getter 方法返回这些对象或在构造函数中接收它们时,防御性地克隆它们,并且不要提供修改可变对象的方法。
于 2013-08-17T15:13:40.413 回答
2
String
Java 中的类已经是不可变的。
如需参考,请参阅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 回答