ฉันกำลังประสบปัญหากับการอ้างอิงวิธีการรวมกับประเภททั่วไป
เรามีรหัสที่เราต้องเรียกใช้วิธีการโอเวอร์โหลด แต่มันล้มเหลวด้วยข้อผิดพลาด:
ไม่สามารถแก้ไขค่า 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 Method กับประเภททั่วไป