HOWTO · Java

Solucionar el error de tipo inesperado en Java

Este tutorial demuestra el error de tipo inesperado en Java.

En esta página

Este tutorial demuestra el error de tipo inesperado en Java.

Solucionar el error de tipo inesperado de Java

El error de tipo inesperado de Java ocurre cuando intentamos asignar un valor a un valor o expresión, no a la variable. Esto significa que solo podemos asignar valores a las variables.

Por ejemplo, si intentamos asignar un valor a DemoStr.charAt(i) ya que no es una variable sino una expresión que devuelve un valor y tipo char, este código arrojará el error tipo inesperado.

Aquí hay un ejemplo de este error:

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);
  }
}

El código anterior intenta invertir una cadena, pero está asignando valor a DemoStr.charAt(i), por lo que generará el error de tipo inesperado de Java. Ver salida:

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

La solución a este error puede ser asignar un valor a una variable o utilizar el búfer de cadenas y el método reverse() para invertir una cadena. Aquí hay soluciones en ambos sentidos:

Solución 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);
  }
}

Solución 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);
  }
}

Ambas soluciones funcionarán de manera similar con un resultado similar:

kcatstfled