Múltiples condiciones if, cómo optimizarlo

Estoy trabajando en una aplicación grande que tiene diferentes condiciones (ifs) y diferentes métodos asociados con ella. Sugiera una forma de optimizar el código mencionado a continuación (reduzca la mayor cantidad posible de ifs anidados). Me gustaría que el código pueda incorporar cualquier otra condición específica con facilidad (uso archivos de propiedades para buscar condiciones).

 public getParameter(String parameter)
    {
      if(parameter=specific condition1
        ||parameter=specific condition2)
      {
      do this
      }
      if(parameter=specific condition3)
      {
       do something else
      }
      if(parameter=specific condition4)
      {
       do something else
      }
      if(parameter=general condition)
      {
       do something else
      }
      else  {
       do something else
      }
Respuesta 1

Digamos que tiene un archivo de propiedades con

do1=val1,val2,val3
do2=val5,val6,val7

(parece que tienes un conjunto fijo de acciones)

Puedes cargarlo con

    HashMap<String, HashSet<String>> rules = new HashMap<String, HashSet<String>>();
    for(String key : properties.stringPropertyNames()) {
        HashSet<String> set = new HashSet<String>();
        set.addAll(Arrays.asList(properties.getProperty(key).split(",")));
        rules.put(key, set);
    }

Ahora tiene un mapa que vincula los nombres de acción ("do1", etc.) a conjuntos de valores posibles ("val1", etc.).

Puede ejecutar las reglas con

    if (rules.get("do1").contains(parameter)) do1();
    if (rules.get("do2").contains(parameter)) do2();

(Le dejo agregar las verificaciones necesarias para evitar excepciones de puntero nulo, por ejemplo)

Respuesta: 2

Recibo una excepción de puntero nulo antes de que pueda acceder a mi código. No puedo decir si funcionará correctamente porque no puedo hacer que pase este punto. El error se arroja en esta línea: if (...

Suponga que estoy ejecutando un proceso y quiero redirigir sus secuencias mediante la técnica clásica: ProcessBuilder pb = new ProcessBuilder ("C: /folder/script.bat"); Proceso p = pb.start (); ...

Dado un conjunto. ¿Cómo encuentro todas las palabras en la lista que tienen más de tres caracteres y las agrego a una nueva lista public class RunnerClass {public static int counter; público estático ...

En este momento tengo una tarea escolar donde tengo que crear un juego de conectar 4 en Java sin una interfaz gráfica de usuario utilizando matrices. Hasta ahora he podido hacer que el juego detecte un cuatro horizontal en una fila, pero puedo '...