Generics sur des collections
Bonjour à tous. Un petit pb de generics avec Java 1.5 (jdk 1.6 bridé) :
Quelqu'un(e) sait-il(elle) pourquoi je ne peut pas écrire ceci, SVP ?
Code:
1 2 3 4 5
| (Class<List<Object>>) List.class
ou
ArrayList<Object>.class
ou
ArrayList<?>.class |
Eclipse le le compile pas.
Pour contourner, j'ai écrit ceci :
Code:
(Class<List<Object>>) new ArrayList<Object>().getClass()
Qui compile sous Eclipse (bien sûr), mais pas sur le serveur IC, sous Maven...
Citation:
inconvertible types
found : java.lang.Class<capture#297 of ? extends java.util.ArrayList>
required: java.lang.Class<java.util.List<java.lang.Object>>
Que dois-je faire, selon vous ?
Merci d'avance.
Si le pb n'a pas de solution, c'est qu'il n'y a pas de pb !
Bon, OK. Alors voilà ce que j'ai finalement fait...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
public class ListFormat extends XMLFormat<List<Object>> {
public ListFormat() {
super(null); // Unbound ; cf. ExtendedBinding#getFormat
}
...
}
public class ExtendedBinding extends XMLBinding {
...
@Override
@SuppressWarnings("rawtypes")
protected XMLFormat getFormat(Class cls) {
if (List.class.isAssignableFrom(cls)) {
return new ListFormat();
}
try {
return super.getFormat(cls);
} catch (XMLStreamException e) {
e.printStackTrace();
return null;
}
}
} |
Et là, ça M'EN bouche un coin, n'est-il pas ? :mouarf: