Ha habido un par de veces cuando me he sentido la necesidad de hacer algo como lo siguiente:Java delimitada limitaciones genéricas en los campos
private <T extends Type> Map<GenericClass1<T>,GenericClass2<T>> map;
... o algo por el estilo. Esencialmente, usando un límite idéntico en los dos argumentos para el mapa. (Este no es un ejemplo real, solo muestra la idea.)
Sé que esto (lamentablemente) no es posible y que solo está disponible en las definiciones de clases y las firmas de métodos. Mi pregunta, sin embargo, es ¿por qué no está disponible en los campos? ¿Es puramente una elección de diseño o hay alguna razón técnica detrás de la que me estoy perdiendo? He tenido una idea y no puedo ver por qué esto no debería ser posible desde una perspectiva técnica, por lo que puedo ver que todo está ahí para que el compilador lo resuelva correctamente y no se requiera ninguna información genérica en el tiempo de ejecución .
@ "no se requiere ninguna información genérica en el tiempo de ejecución", si el compilador le permite hacer cosas en función de lo que fue posible en el tiempo de ejecución, entonces su idioma ya no se tipea. Escribir es las restricciones. – mncl
Gracias por la respuesta. Veo lo que dices, pero donde pude ver que esto es útil es que si conoces el parámetro genérico de la clave, puedes garantizar que obtendrás un objeto con el mismo límite genérico exacto. – berry120
Si conoce el tipo de objeto, ejecútelo. pero si alguna vez lo haces, si (x instancia de y) lo más probable es que lo estés haciendo mal. Guarde el tipo en su lugar. – mncl