คำถามติดแท็ก method-reference

2
Comparator.reversed () ไม่รวบรวมโดยใช้ lambda
ฉันมีรายการที่มีวัตถุผู้ใช้บางอย่างและฉันกำลังพยายามจัดเรียงรายการ แต่ใช้งานได้โดยใช้การอ้างอิงวิธีการเท่านั้นด้วยนิพจน์แลมบ์ดาคอมไพเลอร์ให้ข้อผิดพลาด: List<User> userList = Arrays.asList(u1, u2, u3); userList.sort(Comparator.comparing(u -> u.getName())); // works userList.sort(Comparator.comparing(User::getName).reversed()); // works userList.sort(Comparator.comparing(u -> u.getName()).reversed()); // Compiler error ข้อผิดพลาด: com\java8\collectionapi\CollectionTest.java:35: error: cannot find symbol userList.sort(Comparator.comparing(u -> u.getName()).reversed()); ^ symbol: method getName() location: variable u of type Object 1 error

4
ทำไมแลมบ์ดาส่งคืนชนิดไม่ตรวจสอบในเวลารวบรวม?
Integerอ้างอิงวิธีการที่ใช้มีชนิดกลับ แต่ไม่สามารถใช้ร่วมกันStringได้ในตัวอย่างต่อไปนี้ วิธีแก้ไขการwithประกาศวิธีการเพื่อให้ได้รับการอ้างอิงประเภทวิธีการที่ปลอดภัยโดยไม่ต้องหล่อด้วยตนเอง? import java.util.function.Function; public class MinimalExample { static public class Builder<T> { final Class<T> clazz; Builder(Class<T> clazz) { this.clazz = clazz; } static <T> Builder<T> of(Class<T> clazz) { return new Builder<T>(clazz); } <R> Builder<T> with(Function<T, R> getter, R returnValue) { return null; //TODO } } static public interface …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.