Actualmente soy nuevo en Java procedente de Python, y parece que no puedo averiguar cómo devolver un HashMap, intenté buscar en la web durante horas pero no pude encontrar nada que resolviera mi problema. Aquí está el código.
public HashMap<Integer, Character> dataset(String text) {
for (int i = 0; i < text.length(); i++) {
char value = text.charAt(i);
HashMap<Integer, Character> dict = new HashMap<Integer, Character>();
dict.put(i, value);
System.out.println(dict.getClass().getSimpleName());
return dict; // Here's the error
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter text: ");
String text = sc.next();
System.out.println("============================");
System.out.println("1. Convert to uppercase");
System.out.println("2. Conver to lowercase");
System.out.println("3. Convert to a dataset");
System.out.print("Enter selection: ");
String choice = sc.next();
StringConverter obj = new StringConverter();
switch(choice) {
case "1":
text = obj.upperCase(text);
System.out.println("=====Converted to uppercase=====");
System.out.println(text);
break;
case "2":
text = obj.lowerCase(text);
System.out.println("=====Converted to lowercase=====");
System.out.println(text);
break;
case "3":
obj.dataset(text);
break;
}
}
Incluso verifiqué dos veces para ver si la variable que estoy devolviendo es un HashMap o no.
aquí está la excepción.
Excepción en el hilo "principal" java.lang.Error: Problema de compilación no resuelto: este método debe devolver un resultado de tipo HashMap <Integer, Character>
Sé que esto podría ser un error de novato, pero después de horas de investigación no pude encontrar nada útil.
Mueva su definición de dict
y su return
declaración fuera del ciclo, y debería estar bien (la primera antes de entrar, la última después de salir del ciclo).
En su código actual, return
no se garantiza que la declaración sea accesible (es decir, si su bucle ni siquiera se ingresó), que debe darse en una función no nula.
Además, su método llamaría return
en cada iteración hipotética, lo que significa que su método siempre terminará con la primera iteración. A return
conduce a la salida de la función, sin importar lo que venga después, lo que significa que su código no funcionaría como esperaba. Además, crearía múltiples HashMaps, ya que llama al constructor una vez por iteración.
public HashMap<Integer, Character> dataset(String text) {
HashMap<Integer, Character> dict = new HashMap<Integer, Character>();
for (int i = 0; i < text.length(); i++) {
char value = text.charAt(i);
dict.put(i, value);
System.out.println(dict.getClass().getSimpleName());
}
return dict; // Here's the error
}
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras