Можно ли вызвать функцию и потребителя там, где нет входных параметров? Я попытался использовать ключевые слова void и Void, но они не работают.
В следующем примере кода, если я раскомментирую methodRef2 и methodRef4, я получаю синтаксические ошибки.
import java.util.function.Function;
import java.util.function.Consumer;
public class StackOverflowExample {
public static void main(String[] args) {
Function<Integer, Integer> methodRef1 = StackOverflowExample::inIntegerOutInteger;
methodRef1.apply(1000);
// Function<void, Integer> methodRef2 = StackOverflowExample::inVoidOutInteger;
// methodRef2.apply();
Consumer<Integer> methodRef3 = StackOverflowExample::inIntegerOutVoid;
methodRef3.accept(45);
// Consumer<void> methodRef4 = StackOverflowExample::inVoidOutVoid;
// methodRef4.accept();
}
protected static int inIntegerOutInteger(int i) {
System.out.println("inIntegerOutInteger invoked with value " + i);
return i;
}
protected static void inIntegerOutVoid(int i) {
System.out.println("inIntegerOutVoid invoked with value " + i);
}
protected static int inVoidOutInteger() {
int retVal = 1000;
System.out.println("inVoidOutInteger invoked: returning value " + retVal);
return retVal;
}
protected static void inVoidOutVoid() {
System.out.println("inVoidOutVoid invoked");
}
}