En mi interfaz:genéricos de Java - La cadena de parámetros de especificaciones está ocultando el tipo String
public <T> Result query(T query)
En mi primera subclase:
public <HashMap> Result query(HashMap queryMap)
En mi segunda subclase:
public <String> Result query(String queryStr)
La primera subclase no tiene advertencia de compilación, mientras que la segunda subclase tiene: El parámetro de tipo String está ocultando el tipo ¿Cuerda? Entiendo que mi parámetro está oculto por el tipo de genéricos. Pero quiero entender lo que pasó exactamente?
Como problema de estilo, no recomendaría nombrar un parámetro de tipo 'String' u otros nombres de clase de Java utilizados comúnmente. Es potencialmente confuso para cualquiera que examine el código más adelante. Si veo 'String' en Java, supongo que es' java.lang.String'. – oconnor0
Oh, absolutamente. Sospecho que el ejemplo que doy aquí es lo que el OP_meant_ a hacer, sin embargo. –
También le recomendamos echar un vistazo a [esta pregunta de S & O] (http://stackoverflow.com/questions/10011758/troubleshooting-the-type-parameter-t-is-hiding-the-type-t-warning) . –