HOWTO · Java
Java-Fehler: Der Konstruktor ist nicht definiert
Wir werden in diesem Artikel diskutieren, warum der Java-Fehlerkonstruktor undefiniert angezeigt wird.
Auf dieser Seite
Diese Anleitung befasst sich mit dem Java-Fehler Konstruktor nicht definiert.
der Fehler Konstruktor ist nicht definiert in Java
Der Konstruktor ist undefiniert ist ein sehr häufiger Fehler. Dieser Fehler tritt auf, wenn wir keinen Konstruktor definiert haben, wie im Titel.
Dieser Fehler kann sehr leicht auftreten, da Benutzer zwischen einem Standardkonstruktor und einem parametrisierten Konstruktor verwechselt werden können. Das häufigste Problem ist, dass Benutzer einen Konstruktor mit Parametern definieren, aber während des Aufrufs die Parameter nicht erwähnen; Daher tritt dieser Fehler auf.
Ein weiterer Grund könnte die Art und Weise sein, wie der Konstruktor definiert ist. Konstruktoren müssen ohne Rückgabetyp definiert werden, wenn also ein Rückgabetyp erwähnt wird, kann es denselben Fehler geben.
Codebeispiel:
public class Shapes {
double Shapes;
double Width;
double Height;
public void Shapes(double Name) // constructor defined
{
Name = Shape;
}
public void setHeight(double HeightOfShape) {
Height = HeightOfShape;
}
public void setWidth(double WidthOfShape) {
Width = WidthOfShape;
}
}
public class TestClass {
public static void main(String[] args) {
Shapes Shape1 = new Shapes(); // Error will occor here.
Shape1.setHeight(5);
Shape1.setWidth(3);
}
}
Ausgang:
TestClass.java:24: error: constructor Shapes in class Shapes cannot be applied to given types;
Shapes Shape1 = new Shapes(); //Error will occor here.
^
required: double
found: no arguments
reason: actual and formal argument lists differ in length
Dieser Fehler Konstruktor Shapes in der Klasse Shapes kann nicht auf bestimmte Typen angewendet werden; ist dasselbe wie der Konstruktor ist undefiniert. Eine einfache Shapes-Funktion wird hier als parametrisierter Konstruktor definiert, aber die Funktion wird während des Aufrufs nicht mit Parametern aufgerufen.
Der zweite Grund ist, dass ein Konstruktor keinen Rückgabetyp akzeptiert, also ist sogar die Erwähnung eines void gegen die Regel.
Beheben Sie den Fehler Konstruktor ist nicht definiert in Java
Die Lösung ist wie oben erwähnt beim Entfernen eines Rückgabetyps void. Indem wir die Parameter in der aufrufenden Funktion erwähnen, können wir den Fehler Konstruktor ist nicht definiert erfolgreich entfernen.
Das folgende Code-Snippet zeigt, wie der im vorherigen Codeabschnitt angegebene Fehler behoben werden kann. Indem wir diese Fehler entfernen, können wir das Programm wie gewünscht ausführen.
Codebeispiel:
class Shapes {
double shape;
double Width;
double Height;
public Shapes(double Name) // removing return type
{
Name = shape;
}
public void setHeight(double HeightOfShape) {
Height = HeightOfShape;
}
public void setWidth(double WidthOfShape) {
Width = WidthOfShape;
}
}
public class TestClass {
public static void main(String[] args) {
Shapes Shape1 = new Shapes(3); // adding proper parameters
Shape1.setHeight(5);
Shape1.setWidth(3);
}
}
Es bleiben keine Fehler mehr übrig und der Code wird wie gewünscht erfolgreich ausgeführt. Beachten Sie, dass die einfachsten Fehler diese Art von unnötigen Fehlern verursachen können.
Denken Sie immer daran, den Code ordnungsgemäß zu überarbeiten und sich über die Syntax von Java zu informieren, damit diese Art von Fehlern in Zukunft nicht mehr auftritt.