HOWTO · Java
Java エラー: コンストラクターが未定義です
この記事では、java エラー コンストラクターが未定義である理由について説明します。
このガイドでは、Java のエラー、コンストラクターが定義されていませんについて説明します。
Java の constructor is undefined エラー
constructor is undefined はよくあるエラーです。 このエラーは、タイトルのようにコンストラクターを定義していない場合に発生します。
ユーザーがデフォルトのコンストラクターとパラメーター化されたコンストラクターの間で混乱する可能性があるため、このエラーが発生するのは非常に簡単です。 最も一般的な問題は、ユーザーがパラメーターを使用してコンストラクターを定義することですが、呼び出し中にパラメーターについて言及しないことです。 したがって、このエラーが発生します。
別の理由として、コンストラクターの定義方法が考えられます。 コンストラクターは戻り値の型なしで定義されるため、戻り値の型が言及されている場合、同じエラーが発生する可能性があります。
コード例:
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);
}
}
出力:
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
このエラー クラス Shapes のコンストラクタ Shapes は、指定された型に適用できません; constructor is undefined と同じです。 ここでは単純な形状関数がパラメーター化されたコンストラクターとして定義されていますが、関数は呼び出し中にパラメーターを使用して呼び出されません。
2 番目の理由は、コンストラクターが戻り値の型を受け入れないことです。そのため、void について言及することさえ規則に違反しています。
Java の constructor is undefined エラーを修正
解決策は、戻り値の型voidを削除しながら上記のとおりです。 呼び出し関数のパラメーターに言及することで、constructor is undefinedというエラーをうまく取り除くことができます。
以下のコード スニペットは、前のコード セクションで説明したエラーを修正する方法を示しています。 これらのエラーを取り除くことで、プログラムを思い通りに実行できます。
コード例:
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);
}
}
エラーが残ることはなく、コードは目的どおりに正常に実行されます。 最も単純な間違いが、この種の不要なエラーを引き起こす可能性があることに注意してください。
今後このようなエラーが発生しないように、コードを適切に修正し、Java の構文を学習することを常に念頭に置いてください。