java - 我应该在 Java 中用什么替换小结构?

标签 java oop struct maps idioms

我正在用 Java 构建一个 map 应用程序,我有一个关于传递小对象的问题。假设我想将窗口显示的区域表示为一个矩形,并且我想查询该矩形内有哪些图 block ,以便我知道要加载哪些图 block 。在 C++ 中,我会创建一个 Rect 结构并包含一个 tileInRect 方法。最直接的 Java 翻译是这样的:

class Rect {
    float x, y, width, height;

    public boolean tileInRect(Tile t) {
        // yada yada
    }
}

class MyProgram {
    public void main(String[] args) {
        while (windowIsOpen()) {
            // event loop
            // render map
            Rect r = getVisibleRect();
            for (Tile t : tiles) {
                if (r.tileInRect(t)) {
                    // etc.
                }
            }
        }
    }
}

但这对我来说有点恶心,因为我大概会在每一帧制作一个新的 Rect。在 Java 中是否有更好、更规范的方式来表示这些轻量级对象?我真的不想编写像 tileInRect(Tile t, int rect_x, int rect_y, int ... 这样的辅助方法,因为这看起来只是一个荒谬的参数传递量。谢谢!

最佳答案

Rect 类是不错的选择。

如果你必须创建很多这样的对象,但你只需要它们一次,只需通过更新他的属性为每次调用重用同一个对象。

关于java - 我应该在 Java 中用什么替换小结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16097971/

相关文章:

c - C中的全局结构体

java - RandomAccessSubList 未序列化

c++ - 是否可以阻止引用的向上转换?

java - 如何在jpa中创建InnoDB表?

java - Kotlin /Java : should this singleton object have these sub-methods to check?

c++ - 为什么在 C++ 中的函数内创建对象是一种不好的做法?

c++ - 结构转换为原始字符问题

将序列化结构从 8 位系统复制到 32 位系统

java - 包括来自导入的 maven 库的依赖项

java - "Move"Map<String, Object> 的嵌套映射值到顶层