In java, è possibile aggiungere i parametri Tipo ai metodi statici, per creare metodi che gestiscono i generici. Puoi fare lo stesso con lambda?Creazione di lambda generici in Java
Nel mio codice che ho
final private static <K,V> Supplier<Map<K, List<V>> supplier=HashMap::new;
che sto cercando di fare parametri di tipo come se fosse una funzione, ma non me lo permette.
E se lo faccio:
final private static Supplier<Map<?, List<?>>> supplier=HashMap::new;
Non accetta l'argomento dove cerco di usarlo. Cosa posso fare?
che non può essere una variabile. In realtà, è inutile dichiarare una variabile come "WhateverClassThatSupportsGenerics > var = ...;" a meno che non si tratti di un parametro di un metodo. –
Dove provate ad usare la seconda dichiarazione? (Il primo, come probabilmente hai scoperto, non è sintatticamente valido). – Makoto
Non è possibile costruire un oggetto generico limitato. La tua linea di codice fallisce per lo stesso motivo: "nuova HashMap>" è legale, ma "new HashMap , List>>" non lo è. '?' significa "Non so che tipo usi HashMap", ma quando crei una HashMap, sai sempre cosa intendi inserire (anche se decidi che è java.lang.Object). –
VGR