I generics "esistono" solo a livello di compilazione. A runtime non è possibile determinare e distinguere se es. un oggetto lista è un List<String> o un List<Integer> o altra parametrizzazione.
Pertanto nel tipo a destra di instanceof è proibito usare un tipo parametrizzato. L'unica parametrizzazione tecnicamente possibile è con il "wildcard" ( ? ) perché per scelta di chi ha inventato i generics in Java, un tipo parametrizzato solo con wildcard è "reificato".
Quindi togli la parametrizzazione o metti tutti wildcard:
list.get(0) instanceof Map
o
list.get(0) instanceof Map<?,?>


Rispondi quotando