Escribo un código de demostración para una API que hemos creado y sigo encontrando el mismo problema en el que me repito una y otra vez hasta el cansancio. Estoy muy consciente de que Java tiene programados cierres, pero ahora no tengo acceso a ellos. Esto es lo que se repite por todo el lugar que me gustaría a la caja solo en su propio pequeño rincón:¿Funciones de composición en Java?
public BarObj Foo(Double..._input){
try{
//things that vary per function
//but everything else...
} catch(NullException _null){
m_Logger.error("Null error exception caught in Blah::Foo");
return null;
} catch(Exception ex){
m_Logger.error(ex.getMessage());
return null;
}
}
Acerca de la única manera que he pensado para ir de evitar esto es haciendo pasar una Method
en una función que lleva consigo la lógica try-catch y envolviendo todo en otra función de este modo:
public BarObj MyFunc(Double..._input){
return compose("MyLogic",_input);
}
private BarObj MyLogic(Double..._input)
throws Exception{
//stuff
}
pero se ve feo y lleva consigo una gran cantidad de texto modelo. ¿Hay una manera más fácil de componer funciones en Java?
creo que algunas de las propuestas las extensiones para cierres en java parecen incluso más feas. – DerMike