Je pense que beaucoup de gens utilisent des expressions lambda Java avec l'API Stream, Les expressions Lambda peuvent être utilisées non seulement pour les interfaces nouvellement ajoutées dans java8 telles que Consumer et Function. Les expressions Lambda peuvent être utilisées avec l'interface fonctionnelle, Et l'interface dans laquelle une seule méthode est définie en Java est une interface fonctionnelle.
Par exemple, jetez un œil au ResultSetExtractor
T extractData(ResultSet rs)
Par conséquent, jusqu'à java7, le code écrit comme suit
Entity entity = jdbc.query(sql,new ResultSetExtractor<Entity>() {
@Override
public Entity extractData(ResultSet rs) throws SQLException,
DataAccessException {
if(!rs.next()){
return null;
}else{
Entity result = new Entity();
//setValue from resultSet
return result;
}
});
});
Vous pouvez écrire comme suit.
Entity entity = jdbc.query(sql, rs -> {
if(!rs.next()){
return null;
}else{
Entity result = new Entity();
//setValue from resultSet
return result;
}
}
});
C'est très rafraîchissant. Cependant, si vous n'y êtes pas habitué, vous ne savez peut-être pas quel type de cours anonyme vous créez. Cela peut dépendre de la situation de l'équipe.
Recommended Posts