我正在制作一种基于命令的应用程序来绘制几何图形。因此,如果用户输入类似 RECT 100, 50, 200, 120
的内容,我会在绘图面板的指定位置绘制一个矩形。
为此,我需要将 RECT
映射到 g.drawRect(100, 50, 200, 120);
以及所有类似的函数来绘制几何图形。
我会用hash map做映射,但我不知道如何在java中构建函数数组。不过在 C++ 中我已经这样做了。
键可以是'RECT',值是索引的偏移量。
请告诉我如何索引这些函数。还是有更好的方法来解决主要问题?
最佳答案
Java 中没有函数指针,您需要通过继承和/或接口(interface)来实现。这是一个例子:
interface Shape {
void draw(int[] data);
}
class Polygon implements Shape {
public void draw(int[] data) {
// Draw polygon using points data[i], data[i+1] for points
}
}
class Circle implements Shape {
public void draw(int[] data) {
// Draw circle using data[0], data[1] for the center, and data[2] for radius
}
}
在主程序的构造函数或静态初始化器中:
Map<String,Shape> shapes = new HashMap<String,Shape>();
shapes.put("POLY", new Polygon());
shapes.put("CIRC", new Circle());
在你的绘图代码中:
shapes.get("CIRC").draw(new int[] {100, 100, 50});
关于java - 几何函数索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8722491/