我有下一个代码:
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中找到方法。
谢谢!
答案 0 :(得分:4)
括号是这里的问题。您输入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
。