我正在用 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/