[Generics] Accéder au type du type paramétré
Bonjour,
Voilà, j'ai un petit problème : j'utilise l'API openoffice en java, avec cette API, il n'est pas possible de caster des variables, il faut passer par une classe OOo qui vérifie les compatibilités et effectue la conversion (pour des raisons d'accès à distance ou autre).
Le point important est qu'un objet sous OOo peut implémenter diverses interfaces et qu'il faut faire un appel aux mécanisme OOo pour obtenir chacume d'entre elle. Par exemple :
Code:
1 2 3 4 5 6
| maMéthode(XComponent c) {
// Je veux le doc comme un XStorable :
XStorable s = (XStorable)UnoRuntime.queryInterface(XStorable.class, c);
// Comme un XTextGraphicObjectsSupplier
XTextGraphicObjectsSupplier tgos = (XTextGraphicObjectsSupplier)UnoRuntime.queryInterface(XTextGraphicObjectsSupplier.class, component);
// Etc. |
Etant un peu fénéant par nature, je me suis dit qu'il serait sympa d'encapsuler ça dans une méthode générique :
Code:
1 2 3
| public static<T> T convert(Object o) {
return ((T)UnoRuntime.queryInterface(Je mets quoi là, o));
} |
Voilà, je cherche ce que devient le premier argument de queryInterface, sachant que T.class est interdit apparemment