Bonjour,
je suis en train d'apprendre les nouveautés en Java 8. Il y a une notion qui m'échappe, ce sont les interfaces de java.util.function, dont les plus connues sont :
- Consumer<T>
- Function<T,R>
- Predicate<T>
- Supplier<T>

J'ai trouvé un exemple d'utilisation pour chacun

- Consumer<T>
-------------------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
import java.util.function.Consumer;
*
public class ConsumerTest {
*
*
*
    public static void main(String[] args) {
*
*
Consumer consumer = ConsumerTest::printNames;
*
*
consumer.accept("Jeremy");
consumer.accept("Paul");
consumer.accept("Richard");
*
    } 
*
    private static void printNames(String name) {
        System.out.println(name);
    }
}
Quand on écrit Consumer consumer = ConsumerTest::printNames; la variable consumer semble être initialisée par une méthode et non par une interface. Ma question est : qu'est ce que la variable consumer ? une interface ou une méthode ?

- Supplier<T>
------------------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
package org.arpit.java2blog;
import java.util.function.Supplier;
*
public class Java8SupplierExample {
*
public static void main(String[] args) {
**
**Supplier supplier=()->"Arpit";
**System.out.println(supplier.get());
}
Même question, supplier est une interface ou une méthode ?


- Function<T,R>
------------------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Function<Employee, String> funcEmpToString= (Employee e)-> {return e.getName();};
Même question, funcEmpToStringest une interface ou une méthode ?

etc...