Sto scrivendo codice demo per un'API che abbiamo creato e continuo a incontrare lo stesso problema in cui mi sto ripetendo, più e più volte fino alla nausea. Sono dolorosamente consapevole del fatto che a Java è stato programmato di aggiungere delle chiusure ma ora non ho accesso ad esse. Ecco cosa si ripete in tutto il posto che mi piacerebbe box solo in essa la propria piccolo angolo:Composizione di funzioni in 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;
}
}
Circa l'unico modo che ho pensato di andare in giro questo è di passare una Method
in una funzione che porta con sé la logica try-catch e avvolgendo tutto in un'altra funzione in questo modo:
public BarObj MyFunc(Double..._input){
return compose("MyLogic",_input);
}
private BarObj MyLogic(Double..._input)
throws Exception{
//stuff
}
ma sembra brutto e porta con sé un sacco di testo standard. C'è un modo più semplice per comporre le funzioni in Java?
penso che alcune delle proposte le estensioni per chiusure in java sembrano ancora più brutte. – DerMike