说真的,如果我这样投:
(SVGSVGElement) (((SVGImage)blabla).getDocument().getDocumentElement())
它有效,但如果我尝试
(SVGSVGElement)doc.getElementById(some_id)
我得到强制转换错误,但是getDocumentElement()和getElementById()都返回相同的类型org.w3c.dom.Element
,我的全局目标是获取从文件加载的svg-scene上的某些图像的X坐标,为了缩放场景,使这个图像适合可见区域。我试图通过((SVGSVGElement)doc.getElementById(some_id)).getBBox().getX()
实现这一目标,但你看到我得到了什么。
答案 0 :(得分:1)
org.w3c.dom.Element
是DOM体系结构中最低的接口之一,许多类扩展了它,特别是SVGSVGElement
。
您需要弄清楚doc.getElementById(some_id)
中返回的类型,然后根据该信息进行投射:
log.debug("Returned class is - " + doc.getElementById(some_id).getClass().getName();
//or
System.out.println("Returned class is - " + doc.getElementById(some_id).getClass().getName();
最简单的方法是尝试直接在调试器中了解类型。
我知道的唯一案例似乎是正确的,但是发生了ClassCastException: