HOWTO · Java

メソッドは Java の型エラーに対して未定義です

このチュートリアルでは、Java の型エラーに対してメソッドが未定義であることを示します。

このページの内容

このチュートリアルでは、Java の the method is undefined for the type エラーについて説明します。

メソッドは Java の型エラーに対して未定義です

現在のクラスで定義されていないメソッドを呼び出そうとすると、型のメソッドは定義されていませんというエラーが発生します。 例では、型に対してメソッドが定義されていませんというエラーがスローされます。

package delftstack;

public class Delftstack1 {
  Delftstack1() {
    System.out.println("Constructor of Delftstack1 class.");
  }
  static void delftstack1_method() {
    System.out.println("method from Delftstack1");
  }
  public static void main(String[] args) {
    delftstack1_method();
    delftstack2_method();
  }
}
class Delftstack2 {
  Delftstack2() {
    System.out.println("Constructor of Delftstack2 class.");
  }
  static void delftstack2_method() {
    System.out.println("method from Delftstack2");
  }
}

上記のコードは、エラーをスローするオブジェクトのインスタンスを作成せずに、クラス Delftstack1 内のクラス Delftstack2 からメソッドを直接呼び出します。 出力を参照してください:

Exception in thread "main" java.lang.Error: Unresolved compilation problem:
    The method Delftstack2_method() is undefined for the type Delftstack1

    at DelftstackDemos/delftstack.Delftstack1.main(Delftstack1.java:12)

この問題を解決するには、Delftstack1 クラスで Delftstack2 クラスのオブジェクトをインスタンス化する必要があります。 解決策を参照してください。

package delftstack;

public class Delftstack1 {
  Delftstack1() {
    System.out.println("Constructor of Delftstack1 class.");
  }
  static void delftstack1_method() {
    System.out.println("method from Delftstack1");
  }
  public static void main(String[] args) {
    delftstack1_method();
    Delftstack2 delftstack2 = new Delftstack2();
    delftstack2.delftstack2_method();
  }
}
class Delftstack2 {
  Delftstack2() {
    System.out.println("Constructor of Delftstack2 class.");
  }
  static void delftstack2_method() {
    System.out.println("method from Delftstack2");
  }
}

上記のコードは適切に動作するようになりました。 出力を参照してください:

method from Delftstack1
Constructor of Delftstack2 class.
method from Delftstack2