2012-04-23 89 views
0

http://pastebin.com/gDMy7fPw錯誤的Java代碼行

以上,是我的一個形狀創建者代碼,這是一個部分,但是是獨一無二的。

我得到

g2d.drawLine(p1.getX(), p1.getY(), p2.getX(), p2.getY()); 

錯誤基本上說,這不能在基本類型雙調用的getX(),無法在基本類型雙調用的getY()。

我可以更改除該方法以外的任何代碼。有誰知道我可以擺脫這個錯誤,因爲我不知道它是什麼意思。

回答

7

您的p1p2變量的類型爲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; 

或者,擺脫p1p2完全和您的電話更改爲:

g2d.drawLine(x1, y1, x2, y2); 
+0

+1;還要注意「無法在基本類型double上調用XYZ()」意味着您試圖調用該方法的變量(在本例中,getX()和getY()不是對象,而是原始類型沒有方法 – 2012-04-23 14:52:05

+0

對於Point p1的變化,你可以安全的刪除「原始類型」(像int,double,float,byte等等)或者......「你的答案的一部分,因爲OP說他」可以改變除這種方法之外的任何代碼「。 – dasblinkenlight 2012-04-23 14:57:18

+0

@dasblinkenlight:我想我會留在那裏爲了其他人*其他thanges :) – 2012-04-23 14:58:48

0

可能您想要使用:

g2d.drawLine(x1,y1,x2,y2);

+0

不幸的是,我不能改變它,因爲賦值規範給出以下代碼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