Qualcuno può spiegare perché compila il seguente pezzo di codice?Confuso da generici in Java
List<Long> longNums = new ArrayList(Arrays.asList("one", "two", "three"));
È dovuto alla cancellazione del tipo?
se ho il seguente metodo:
public <T> T readProperty(String propName, Class<T> type);
Come posso fare in modo che restituisca, dire una List<Long>
e non un List<String>
? Ovviamente, al tipo di chiamata il metodo posso solo fornire List.class
e pregare.
//run and pray
List<Long> longNums = readProperty("prop", List.class);
è già successo a me che un tale metodo non corretto assegnato un elenco di oggetti stringa in un elenco di numero di lungo, e non è stato fino a quando ho fatto funzionare, che ho visto il ClassCastException
.
Semplicemente - Non mescolare farmaci generici con raws. –
Come mai si desidera memorizzare il letterale String nella lista 'Long'? –
non un letterale String, ma un elenco di stringhe. Forse dovrei parafrasare – preslavrachev