gpt4 book ai didi

Java 类似于 "C++: const return type"- 或者如何允许读取和防止写入非原始成员

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:51:17 24 4
gpt4 key购买 nike

也许我还漏掉了一个重要的概念。

为了允许读取和防止写入非原始成员,相应的 getter 总是创建成员对象的新副本。出于性能原因,我想阻止这种情况。我正在尝试编写一个简单的 2D 模拟器,该模拟器具有基于四叉树的碰撞检测,这将是面包和黄油。

我认为在 C++ 中我可以通过返回一个常量来做到这一点。 (我知道我可以用类型转换覆盖它)但我不确定这是如何在 JAVA 中完成的。

有什么想法吗?

最佳答案

有多种方法可以归档您想做的事情。

首先,const 在 C++ 中的作用没有语言支持。

无论如何,我建议您使用 Getters 和 Setters,因为它们不会造成任何开销。 Java 即时优化会处理这个问题。

对于非基本类型,您仍然会遇到返回的对象本身可能会发生变化的问题。可以通过三种方法来防止这种情况。

  1. 您根本不返回该对象。您通过父对象中的多个 getter 提供对象内部存储的数据。
  2. 您使用不可变对象(immutable对象)或不可变 View 。因此,一般无法更改的对象或仅提供对象 View 但会阻止 setter 对象的对象。
  3. 您使用克隆或复制构造函数返回原始对象的副本。

关于Java 类似于 "C++: const return type"- 或者如何允许读取和防止写入非原始成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12458623/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com