Java - Predefined funtional interface

less than 1 minute read

1. Void return and zero paramter
Use Runnable

1
2
3
4
5
6
void runTask(Runnable task) {
  task.run();
}
runTask(()-> {
   // do something
});

2. Return value and zero paramter
Use Supply

1
2
3
4
5
6
7
8
public <T> T runTask(Supply<T> task) {
  return task.get();
}
Integer res = runTask<Integer>(()-> {
   Integer value;
   // do something
   return value;
});

3. Return void and 1 parameter
Use Consumer

1
2
3
4
5
6
7
public <T> void runTask(Consumer<T> task, T value) {
  return task.accept(value);
}
Integer value;
runTask<Integer>((Integer x)-> {
   // do something
}, value);

4. Generic case
Use Action0, Action1, Action2 ...