2011-09-30 6 views
0

Je voulais créer une interface générique avec une méthode que je pourrais utiliser pour convertir des objets ...Interface avec différents types de paramètres et le nombre

Laissez-moi vous expliquer.

Dans GWT, à l'aide de GWT-Platform, les présentateurs disposent d'une interface interne qui étend View. Cette interface est implémentée par la classe qui construit l'écran (les présentateurs ont les actions du bouton, etc.). Donc, en supposant que j'ai un présentateur pour le compte d'utilisateur, par exemple. Il "représente" mon bean utilisateur. Je voudrais pouvoir créer une classe implémentant une interface, je pourrais appeler une méthode passant l'instance de l'implémentation de la vue, et il a renvoyé le bean peuplé ... Je ne sais pas si je pourrais être assez clair ..

OK. Jusqu'ici tout va bien. J'ai créé une interface comme ceci:

public interface ViewBeanConverter<T, U extends View> 
{ 
    public T convert(U u); 
} 

Il fonctionne pour les vues simples, mais le problème est que, parfois, je dois passer des paramètres qui ne sont pas dans la vue de l'interface, mais seulement dans la classe de présentateur, les choses qui ne pas de sens étant en vue. Par exemple, supposons que le bean devienne un utilisateur, j'ai besoin d'une liste d'effets personnels (la première chose qui me vient à l'esprit en ce moment). Et puis, sur un autre écran, une voiture de haricot par exemple, besoin d'un propriétaire et une liste de pièces pour le concert ... Comment puis-je gérer cela?

Je ne peux pas l'expliquer correctement, désolé à ce sujet, mais le vrai problème est que j'ai besoin de différentes quantités de différents types de paramètres ... et je me demandais s'il y avait une façon élégante de le faire.

merci d'avance.

Répondre

1

pour différentes quantités de différents types de paramètres, utilisez var args

public interface ViewBeanConverter<T, V extends View> 
{ 
    public T convert(V v,Object... objects); 

} 

ou simplement une carte

public T convert(V v, Map<Object, Object> objects); 
Questions connexes