假设我们始终使用Sun JVM(例如1.5+),将Graphics引用强制转换为Graphics2D是否总是安全的?
我还没有看到它引起任何问题,据我所知,Graphics类是遗留代码,但Java设计师不想更改Swing和AWT类的接口以保持向后兼容性。
我还没有看到它引起任何问题,据我所知,Graphics类是遗留代码,但Java设计师不想更改Swing和AWT类的接口以保持向后兼容性。
Graphics2D
对象,除了打印和 Swing 的 DebugGraphics
对象外。因此,只要您的代码不涉及这些情况,将其转换为 Graphics2D
是安全的。2D图形教程中提到:
要在应用程序中使用Java 2D API功能,请将传递给组件渲染方法的Graphics对象转换为Graphics2D对象。例如:
public void paint (Graphics g) {
Graphics2D g2 = (Graphics2D) g;
...
}
这是我能找到的最“官方”的来源。直接来自Sun的Java教程,我认为这是官方认可的方法。虽然如果JavaDocs明确说明这一点,我也不会介意...