Sustitución de la instrucción de cambio Java

Me he estado preguntando si hay una manera de reemplazar la declaración de cambio actual que tengo. A continuación se muestra un ejemplo del código que tengo, aunque la declaración que tengo es mucho más larga y solo se hará más grande. El método de cambio se llama a través de un lector de archivos, por lo que lee una línea y luego llama a esta función con los valores asignados.

public static void example(String action, String from, String to){
 switch (action) {
           case ("run"):
                runTo(from,to);
                break;
           case ("walk"):
                walkTo(from,to);
                break;
           case ("hide"):
                hideAt(to);
                break;
            }
 }

editar: Tenía curiosidad si hay una mejor manera en lugar de usar una declaración de cambio como el escenario anterior.

He actualizado un poco el ejemplo para que tenga un poco más de sentido. Algunas de las llamadas a métodos no necesitan usar todos los parámetros.

Respuesta 1

Una opción posible para deshacerse del interruptor es usar hashmap de funciones:

private String stringMethod(final String action, final String source) {

    final Function<String, String> toLowerFunction = String::toLowerCase;
    final Function<String, String> toUpperFunction = String::toUpperCase;

    final HashMap<String, Function<String, String>> stringFunctions = new HashMap<>();
    stringFunctions.put("toLower", toLowerFunction);
    stringFunctions.put("toUpper", toUpperFunction);

    return stringFunctions.get(action).apply(source);
}
Respuesta: 2

Tengo una tabla que tiene ciertos atributos y un botón en la última columna de cada fila. <tr> <td> B001 </td> <td> El guardián entre el centeno </ td & ...

Estoy usando este código para obtener la fecha anterior, pero me gustaría obtener la fecha excluyendo sábado y domingo el código que uso para obtener la fecha anterior: import java.text.DateFormat; import java.text ....

Encontrando un problema en el que una instalación con script que solía funcionar comenzó a fallar con este error. Error: Paquete: 1: java-1.8.0-openjdk-headless-1.8.0.201.b09-0.el7_6.x86_64 (rhui-REGION-rhel-server -...

Tengo un marco de datos (Dataset <Row>) que tiene seis columnas, de seis, cuatro deben agruparse y para las otras dos columnas puede repetir las columnas agrupadas n veces en función de la variación ...