Я стикаюся з проблемою з посиланням на метод у поєднанні з загальними типами.
У нас є код, куди нам потрібно викликати перевантажений метод, але він не вдається з помилкою:
Неможливо вирішити значення m1 ()
Я спростив свою проблему, щоб зрозуміти, в чому проблема.
Наступний код не вдається:
public class Test {
void test() {
// Getting error here
setValue(C1::m1, Integer.ONE);
}
<E extends I1, T> void setValue(BiConsumer<E, T> cons, T value) {
}
}
interface I1 {
}
class C1 implements I1 {
void m1(Integer value) {
}
void m1(int value) {
}
}
Може хтось порадує, чому це так поводиться?
Будь ласка, зауважте, це не пов'язане з питанням посилання методу Java 8 із загальними типами