Trong java, bạn có thể thêm các tham số kiểu vào các phương thức tĩnh, để tạo các phương thức xử lý các Generics. Bạn có thể làm tương tự với lambdas?Tạo lambdas chung trong Java
Trong mã của tôi, tôi có
final private static <K,V> Supplier<Map<K, List<V>> supplier=HashMap::new;
Tôi đang cố gắng để làm tham số kiểu như đó là một chức năng, nhưng nó sẽ không cho phép tôi.
Và nếu tôi làm:
final private static Supplier<Map<?, List<?>>> supplier=HashMap::new;
Nó không chấp nhận lập luận mà tôi cố gắng sử dụng nó. Tôi có thể làm gì?
Đó không thể là một biến. Trong thực tế, việc khai báo một biến như 'WhateverClassThatSupportsGenerics > var = ...;' trừ khi nó là một tham số của một phương thức. –
Bạn cố gắng sử dụng tờ khai thứ hai ở đâu? (Đầu tiên, như bạn đã có thể phát hiện, là không hợp lệ theo cú pháp.) – Makoto
Không thể xây dựng một đối tượng chung được bao bọc. Dòng mã của bạn không thành công vì cùng một lý do 'HashMap mới
>' là hợp pháp, nhưng 'mới HashMap , List>>' thì không. '?' có nghĩa là "Tôi không biết loại HashMap này sử dụng", nhưng khi bạn tạo một HashMap, bạn luôn biết những gì bạn định đưa vào nó (ngay cả khi bạn quyết định nó là java.lang.Object). – VGR