Вот простой класс, иллюстрирующий мою проблему:
package com.example;
import java.util.function.*;
public class App {
public static void main(String[] args) {
App a1 = new App();
BiFunction<App, Long, Long> f1 = App::m1;
BiFunction<App, Long, Void> f2 = App::m2;
f1.apply(a1, 6L);
f2.apply(a1, 6L);
}
private long m1(long x) {
return x;
}
private void m2(long x) {
}
}
f1
, ссылаясь на App::m1
и будучи привязанным к a1
в вызове f1
к apply
, работает отлично — компилятор доволен, и вызов может быть выполнен через f1.apply.
f2
, ссылаясь на App::m2
, не работает.
Я хотел бы иметь возможность определить ссылку на несвязанный нестатический метод без возвращаемого типа, но я не могу заставить его работать.
void != Void
:) - person Dariusz   schedule 10.10.2017