java - 你能强制java按值返回一个对象吗?

标签 java

在 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/

相关文章:

java - Cucumber 4.7.2 将表转换为行到对象

java - 如何在代码中的任意位置访问 JAAS 角色?

java - 从上传的 .xlsx(2007 Excel 文件)创建 xssf 工作簿

java - 将一个程序分成两个不同的类

java - 如何将前缀属性注入(inject)java.util.Properties?

java - 具有操作传递的装饰器模式?

java - 下面的 java 枚举类的主体是如何工作的?

java - 无法解析为变量 - gui Controller 代码

java - 抽屉导航错误与闪屏

java - 我认为已初始化的变量发送未初始化的错误