Javaban mi a Wildcard szerepe?
public static <T extends Number> int keres(List<T> l) {
return l.indexOf(99);
}
public static int keres2(List<? extends Number> l) {
return l.indexOf(99);
}
T mint típusparaméter az okés, de a ? (wildcarddal) is ugyanolyan jó a program.
Nem látom értelmét, elvileg valahol valamilyen castolást kell végezni, de soha nem láttam rá jó példát.
Akkor kell konkrétan kiírnod a típusparamétert, ha azt még valahol máshol is használni akarod.
public static <T extends Number> T asd(T input) {
.. return input;
}
Gondolj bele, ha lehagynád a T-t, akkor mit írnál a paraméterlistába és a visszatérési érték típusához?
A T-s megoldásnál szerintem szépen látszik az előnye: mivel nevesítetted ("T"), felhasználhatod több helyen azt a típust. Pl.:
public static <T extends Number> int keres(List<T> miben, T mit) {
miben.indexOf(mit);
}
Ebben az esetben a 'mit' ugyanolyan típusú, mint amilyen típusú elemeket tárol a 'miben' lista.
A ?-el ezt nem tudod megtenni.
köszönöm a válaszokat, így már jobban érthető :D
De most felmerült bennem még egy kérdés ezzel kapcsolatban
List<Number> l = new ArrayList<>();
List<? extends Number> l2 = new ArrayList<>();
két list között van különbség?
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!