我有下一个代码:

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

07-24 09:21