String é atribuída a uma Lista sem um erro de compilação [duplicado]
Esta pergunta já tem uma resposta aqui:
Por que esse método genérico com um limite pode retornar qualquer tipo? 1 respostaComo eu sei, um dos principais objetivos dos genéricos em Java é fornecer segurança do tipo em tempo de compilação. Se for compilado, o código será executado sem problemas.
Por que o código a seguir está sendo compilado?
public static void main(String[] args) {
String s = getList();
}
private static <T extends List> T getList() {
return (T)new ArrayList();
}
Compila bem. Onde está minha compilação com segurança de tipo? ogetList()
O método não tem nada em comum com oString
classe.