HOWTO · Java

Java の予期しない型エラーを修正する

このチュートリアルでは、Java の予期しない型エラーについて説明します。

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

Java unexpected type エラーを修正

Java unexpected type エラーは、変数ではなく、値または式に値を代入しようとすると発生します。 これは、変数にのみ値を代入できることを意味します。

たとえば、DemoStr.charAt(i) に値を代入しようとすると、これは変数ではなく、値と char 型を返す式であるため、このコードは unexpected type エラーをスローします。

このエラーの例を次に示します。

package delftstack;

public class Example {
  public static void main(String[] arg) {
    String DemoStr = "delftstack";
    String ReversedString = "";
    for (int i = DemoStr.length() - 1; i >= 0; i--) {
      DemoStr.charAt(i) += ReversedString;
    }
    System.out.println(ReversedString);
  }
}

上記のコードは文字列を反転しようとしますが、値を DemoStr.charAt(i) に代入しているため、Java unexpected type エラーがスローされます。 出力を参照してください:

****.java:8: error: unexpected type
required: variable
found:    value

このエラーの解決策は、変数に値を代入するか、文字列バッファと reverse() メソッドを使用して文字列を逆にすることです。 両方の方法での解決策は次のとおりです。

解決策 1:

package delftstack;

public class Example {
  public static void main(String[] arg) {
    String DemoStr = "delftstack";
    String ReversedString = "";
    for (int i = DemoStr.length() - 1; i >= 0; i--) {
      ReversedString += DemoStr.charAt(i);
    }
    System.out.println(ReversedString);
  }
}

解決策 2:

package delftstack;

public class Example {
  public static void main(String[] arg) {
    String DemoStr = "delftstack";
    String ReversedString = "";
    ReversedString = new StringBuffer(DemoStr).reverse().toString();
    System.out.println(ReversedString);
  }
}

どちらのソリューションも、同様の出力で同様に機能します。

kcatstfled