2015-08-14 50 views
0

我有下面的代碼:在Java中如何處理投射?

if(lineaCurvaPintada){ 
    FiguraGeometrica f; 
    MiLineaCurva c; 
(MiLineaCurva)vShape.get(vShape.size()-1).setCtrlx(evt.getPoint().x); 
} 

凡FiguraFeometrica是abstact類。 MiLineaCurva從FiguraGeometrica擴展而來。 setCtrlx是MiLineaCurva類的一個方法。

vShape是FiguraGeometrica的數組。

爲什麼我不能訪問MiLineaCurva方法? Netbeans給我的錯誤是:在類FiguraGeometrica中找不到方法。

謝謝!

回答

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

+0

確實工作謝謝:-) –