http://pastebin.com/gDMy7fPw錯誤的Java代碼行
以上,是我的一個形狀創建者代碼,這是一個部分,但是是獨一無二的。
我得到
g2d.drawLine(p1.getX(), p1.getY(), p2.getX(), p2.getY());
錯誤基本上說,這不能在基本類型雙調用的getX(),無法在基本類型雙調用的getY()。
我可以更改除該方法以外的任何代碼。有誰知道我可以擺脫這個錯誤,因爲我不知道它是什麼意思。
http://pastebin.com/gDMy7fPw錯誤的Java代碼行
以上,是我的一個形狀創建者代碼,這是一個部分,但是是獨一無二的。
我得到
g2d.drawLine(p1.getX(), p1.getY(), p2.getX(), p2.getY());
錯誤基本上說,這不能在基本類型雙調用的getX(),無法在基本類型雙調用的getY()。
我可以更改除該方法以外的任何代碼。有誰知道我可以擺脫這個錯誤,因爲我不知道它是什麼意思。
您的p1
和p2
變量的類型爲double
。 第一個要做的事情就是理解你的工作。編譯器消息稱一切你應該需要:
不能在基本類型雙
這是絕對正確調用的getX() - 你不能double
打電話getX()
。所以接下來你應該努力爲什麼你試圖打電話給getX()
。你應該不是在調用它,還是你的變量類型是錯誤的?
我懷疑是不是這些變量:
private double x1;
private double y1;
private double x2;
private double y2;
private double p1;
private double p2;
你真的想:
private Point p1;
private Point p2;
或者,擺脫p1
和p2
完全和您的電話更改爲:
g2d.drawLine(x1, y1, x2, y2);
可能您想要使用:
g2d.drawLine(x1,y1,x2,y2);
不幸的是,我不能改變它,因爲賦值規範給出以下代碼public void renderShape(Graphics2D g2d){ \t \t g2d.drawLine(p1.getX(),p1.getY(), p2.getX(),p2.getY()); \t \t \t}我必須解決這個問題。 – user1351008 2012-04-23 14:57:16
+1;還要注意「無法在基本類型double上調用XYZ()」意味着您試圖調用該方法的變量(在本例中,getX()和getY()不是對象,而是原始類型沒有方法 – 2012-04-23 14:52:05
對於Point p1的變化,你可以安全的刪除「原始類型」(像int,double,float,byte等等)或者......「你的答案的一部分,因爲OP說他」可以改變除這種方法之外的任何代碼「。 – dasblinkenlight 2012-04-23 14:57:18
@dasblinkenlight:我想我會留在那裏爲了其他人*其他thanges :) – 2012-04-23 14:58:48