Вот простой класс, который иллюстрирует мою проблему:
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
, не работает.
Я хотел бы иметь возможность определить ссылку на метод несвязанного нестатического метода без возвращаемого типа, но я не могу заставить его работать.