Formation Java / Spring Boot pour développeurs COBOL
Cette journée est une journée charnière.
À l’issue de cette journée, vous serez capable de :
List
Map
Vous avez appris…
Aujourd’hui, on assemble tout.
Vous disposez maintenant de :
Compte
CompteCourant
CompteEpargne
Client
BigDecimal
filter
map
count
collect
Certain.e.s ont codé tout dans une méthode main() et d’autres pas forcément. A partir de maintenant, la méthode main ne servira qu’à lancer le programme, voire instancier des objets de l’application si besoin.
BigDecimal solde = new BigDecimal("1000"); BigDecimal[] operations = { new BigDecimal("-200"), new BigDecimal("150"), new BigDecimal("-50") }; for (int i = 0; i < operations.length; i++) { solde = solde.add(operations[i]); } System.out.println(solde);
main()
Main
Compte compte = new CompteCourant( "FR001", new BigDecimal("1000"), new BigDecimal("500") ); List<BigDecimal> operations = List.of( new BigDecimal("-200"), new BigDecimal("150"), new BigDecimal("-50") ); for (BigDecimal op : operations) { compte.crediter(op.max(BigDecimal.ZERO)); if (op.compareTo(BigDecimal.ZERO) < 0) { compte.debiter(op.abs()); } } System.out.println(compte.getSolde());
try { compteEpargne.debiter(new BigDecimal("900")); } catch (IllegalStateException e) { System.out.println("Erreur métier : " + e.getMessage()); }
Map<String, Client>
clients.values().stream()
long nbDecouverts = clients.values().stream() .flatMap(client -> client.getComptes().stream()) .filter(c -> c.getSolde().compareTo(BigDecimal.ZERO) < 0) .count();
Questions à discuter :
C’est l’un des l’objectifs réel de la POO.
@Test void debit_refuse_si_solde_insuffisant() { Compte compte = new CompteEpargne("FR001", new BigDecimal("100")); assertThrows(IllegalStateException.class, () -> compte.debiter(new BigDecimal("200")) ); }
if
try/catch
À ce stade, BankLite est :
Vous avez :
Super !!