2012-04-23 90 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