Якщо вам просто нічого не потрібно як ваш тип, ви можете використовувати void. Це можна використовувати для реалізації функцій або дій. Потім ви можете зробити щось подібне:
interface Action<T> {
public T execute();
}
abstract class VoidAction implements Action<Void> {
public Void execute() {
executeInternal();
return null;
}
abstract void executeInternal();
}
Або ви можете опустити абстрактний клас і зробити нульове повернення в кожній дії, що не вимагає повернення значення самостійно.
Потім ви можете використовувати такі дії, як це:
Дано метод
private static <T> T executeAction(Action<T> action) {
return action.execute();
}
ви можете назвати це як
String result = executeAction(new Action<String>() {
@Override
public String execute() {
//code here
return "Return me!";
}
});
або для недійсних дій (зауважте, що ви не привласнюєте результат ні до чого)
executeAction(new VoidAction() {
@Override
public void executeInternal() {
//code here
}
});