Dernière modification : 24/08/2022

Java 8 - Les nouveautés

 

Cet article contient l'ensemble des articles en relation avec les nouveautés Java 8.

1. Les interfaces fonctionnelles

Introduit dans java 8, une interface fonctionnelle annotée @FunctionalInterface ne contient qu'une seule méthode abstraite. Cette annotation est facultative : dans le cas ou l'interface ne possède qu'une seule méthode, elle pourra être utilisé comme interface fonctionnelles.

Oracle a défini 43 interface fonctionnelle, dont certaines ci-dessous :

Interface Signature Exemples
BinaryOperator T apply(T t1, T t2) Math::max
Consumer void accept(T t)

System.out::println

System::exit

Function R apply(T t)

String::toLowerCase

Predicate

boolean test(T t)

Objects::nonNul
Supplier T get() Exception::new
UnaryOperator T apply(T t) String::toUpperCase

 

2. Lambda Expressions & références des méthodes

La méthode Iterable.forEach a été introduite avec Java 8. Ci-dessous une utilisation de cette méthode avec les lambdas expressions et les références des méthodes.

Définition de la méthode forEach :

default void forEach(Consumer action);

Dans un premier exemple, nous parcourons une liste via une classe anonyme :

List liste = Arrays.asList("a","b","c");
liste.forEach(new Consumer() {
    @Override
    public void accept(String t) {
        System.out.print(t);
    }
});
// Output : abc

Maintenant avec les lambdas expressions, cela facilite l'écriture du code et augmente sa lisibilité :

final List liste = Arrays.asList("a", "b", "c");
liste.forEach(t -> System.out.print(t)); // abc

Concernant les références des méthodes, on utilise les deux points deux fois (::) pour indiquer la méthode à utiliser.

final List liste = Arrays.asList("a", "b", "c");
liste.forEach(System.out::print); // abc

Ici la méthode à utiliser est print. Java fournit automatiquement en argument de print chaque élément de la liste.

3. Optional

Les optionals sont traitées dans l'article suivant : Java - Utilisation des Optional

4. Les Stream

Les Stream sont traitées dans les articles suivants :

5. Les dates

Les dates sont traitées dans l'article suivant : Java : Date : Formatage, parsing et conversion

6. Installation de Java

L'installation sous Debian 10 de java est traitée dans l'article suivant : Installation de Java sous Debian 10

Remarque : L'installation dans windows est similaire.