在 Java 中,可以强制方法按值返回(而不是按引用返回)吗?
例如:
public Rect getBounds() {
return bounds; //TODO: Return bounds by value so users can't change edit it.
}
在这里我不妨公开界限。如果要通过引用传递某些内容,似乎没有理由创建一个返回某些内容的函数。
我的另一个选择是创建几个方法,逐一返回边界的特定成员,但我宁愿不这样做。
最佳答案
没有。这就是 API 经常返回 defensive copies 的原因。 , unmodifiable wrappers等
这些副本和/或包装器(帮助)防止用户修改实例数据。
如果正确的行为依赖于实例对实例数据具有完全且唯一的控制权,则实例有责任通过不向客户端提供任何可用于违反该契约(Contract)的内容来确保该行为。
关于java - 你能强制java按值返回一个对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12336174/