Question de base sur les interfaces de java.util.function
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:
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:
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:
1 2
|
Function<Employee, String> funcEmpToString= (Employee e)-> {return e.getName();}; |
Même question, funcEmpToStringest une interface ou une méthode ?
etc...