Java generics - Typ parameter-String versteckt sich der Typ String
In mein interface:
public <T> Result query(T query)
In meiner 1. Unterklasse:
public <HashMap> Result query(HashMap queryMap)
In meiner 2. Unterklasse:
public <String> Result query(String queryStr)
1. Unterklasse hat keine Zusammenstellung Warnung an alle, während der 2. Unterklasse hat:
Der parameter vom Typ String ist, versteckt sich der Typ "String"? Ich verstehe meine parameter ist versteckt durch die Generika-Typ. Aber ich möchte verstehen, unter was genau passiert ist?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Denkt, dass es Sie versuchen, eine Typ-parameter -- ein variable -- dessen name
String
. Ich vermute, deine erste Unterklasse einfach nicht importierenjava.util.HashMap
.In jedem Fall, wenn
T
ist ein Typ-parameter der Schnittstelle - was wahrscheinlich der Fall sein sollte-dann sollten Sie nicht werden, einschließlich der<String>
in den Unterklassen überhaupt. Es soll einfachString
- oder anderen gängigen Java-Klassennamen. Wird es möglicherweise verwirrend für jemand, der die Prüfung der code später auf. Wenn ich seheString
in Java, ich nehme an, es istjava.lang.String
.