Ich arbeite an einer wirklich einfachen Point-Klasse, aber ich bekomme einen Fehler und ich kann nicht feststellen, wo das String/Doppel-Problem passiert oder wie es zu beheben ist.Unzulässiges Argument Ausnahme
public String getDistance (double x1,double x2,double y1,double y2) {
double X= Math.pow((x2-x1),2);
double Y= Math.pow((y2-y1),2);
double distance = Math.sqrt(X + Y);
DecimalFormat df = new DecimalFormat("#.#####");
String pointsDistance = (""+ distance);
pointsDistance= df.format(pointsDistance);
return pointsDistance;
}
und der Testcode
double x1=p1.getX(),
x2=p2.getX(),
y1=p1.getY(),
y2=p2.getY();
pointsDistance= p1.getDistance(x1,x2,y1,y2);
EDIT
ich den Fehler hinzufügen, vergessen zu Ich erhalte:
Exception in thread "main" java.lang.IllegalArgumentException: Cannot format given Object as a Number
at java.text.DecimalFormat.format(Unknown Source)
at java.text.Format.format(Unknown Source)
at Point.getDistance(Point.java:41)
at PointTest.main(PointTest.java:35)
Glücklicherweise müssen Sie den Fehler nicht genau lokalisieren, da Ihr Compiler das für Sie tun wird ... Wo sind 'p1',' p2' und 'pointsDistance' definiert? Welcher Typ ist 'p1' und' p2'? Ich nehme an, dass "pointsDistance" eine "Zeichenfolge" ist. Was gibt 'getX()' und 'getY()' zurück, für welchen Objekttyp 'p1' und' p2'? Welche Zeile ist 'Point.java, Zeile 41'? Was ist 'PointTest.java Zeile 35'? – nhgrif
pointsDistance = p1.getDistance (x1, x2, y1, y2); ist Linie 35 – user2954611
pointsDistance = df.format (pointsDistance); Zeile 41 lautet – user2954611