我有下一个代码:
if(lineaCurvaPintada){
FiguraGeometrica f;
MiLineaCurva c;
(MiLineaCurva)vShape.get(vShape.size()-1).setCtrlx(evt.getPoint().x);
}
其中FiguraFeometrica是表象类别。 MiLineaCurva从FiguraGeometrica扩展。
setCtrlx是MiLineaCurva类的方法。
vShape是FiguraGeometrica的数组。
为什么我无法访问MiLineaCurva方法?
Netbeans给我的错误是:在类FiguraGeometrica中找不到方法。
谢谢!
最佳答案
括号是这里的问题。您键入强制转换vShape.get(vShape.size()-1).setCtrlx(evt.getPoint().x)
的结果。使用以下代码修复代码:
((MiLineaCurva)vShape.get(vShape.size()-1)).setCtrlx(evt.getPoint().x);
^-----------------------------------------^
请注意,如果
vShape.get(vShape.size()-1)
中的对象不是MiLineaCurva
类型,则将得到ClassCastException
。