Wenn ich versuche, eine Methode aus einer anderen Klasse in meiner Hauptmethode aufzurufen, stoße ich auf den Fehler, der in diesem Titel beschrieben wird. Der Fehler zeigt auf die dritte Zeile meiner Klasse TestCalculator. Hier ist der Code:"Ausnahme im Thread" main "java.lang.StackOverflowError" Fehler?
TestCalculator Klasse
public class TestCalculator {
Double x;
TestCalculator c = new TestCalculator();
String string = "b";
Double doubleObject = 1.0;
double doublePrimitive = 2;
/*
* Chops up input on ' ' then decides whether to add or multiply.
* If the string does not contain a valid format returns null.
*/
public Double x(String x){
x("12 [ 3");
return new Double(0);
}
public void testParsing() {
if (c.x(doubleObject) == 17) {
System.out.println("Adding Success");}
else {
System.out.println("Adding Fail");
}
if (c.x(doublePrimitive) == 60) {
System.out.println("Multiplying Success");}
else {
System.out.println("Multiplying Fail");
}
if (c.x(string) == null) {
System.out.println("Valid operator Success");}
else {
System.out.println("Valid operator Fail");
}
}
/*
* Adds the parameter x to the instance variable x and returns the answer as a Double.
*/
public Double x(Double x){
System.out.println("== Adding ==");
x("12 + 5");
return new Double(0);
}
/*
* Multiplies the parameter x by instance variable x and return the value as a Double.
*/
public Double x(double x){
System.out.println("== Multiplying ==");
x("12 x 5");
return new Double(0);
}
}
Hauptklasse
public class Main {
public static void main(String[] args) {
TestCalculator call = new TestCalculator();
call.testParsing();
}
}
Ich bin mir nicht sicher, warum dieser Fehler auftritt. Wenn mir jemand helfen könnte zu verstehen, was dieser Fehler ist und warum es passiert, würde das von mir selbst und allen anderen, die auch in Zukunft auf dieses Problem stoßen könnten, sehr geschätzt werden. Vielen Dank.
Sie rufen die Funktion immer wieder ohne Ende auf, welches Ergebnis erwarten Sie? – Li357
Ich bin verwirrt darüber, wie Sie jeder Methode einen Wert zuweisen und dann diese Methode in der Hauptmethode aufrufen. Da alle Methoden denselben Namen haben, verwirren mich die Unterschiede zwischen diesen Methoden. – user7128699
Was meinst du? – Li357