Assuming we always use a Sun JVM (say, 1.5+), is it always safe to cast a Graphics reference to Graphics2D?
I haven't seen it cause any problems yet and, to my understanding, the Graphics class is legacy code but the Java designers didn't want to change the interfaces for Swing and AWT classes in order to preserver backwards compatibility.
According to the discussion here, it is always safe to cast from Graphics
to Graphics2D
. However I am not able to quickly find the official Sun statement on this.
The reason it is valid to cast from Graphics to Graphics2D, is because Sun have said that all Graphics objects returned by the API in Java 1.2 or above will be a subclass of Graphics2D.
Another hint here with the same conclusion.
Graphics Object can always be cast Graphics2D g2d = (Graphics2D)g;