Le contraire de cette question: How do I add a type to GWT's Serialization Policy whitelist?Comment supprimer des types d'implémentation de la stratégie de sérialisation de GWT?
GWT ajoute des types non désirés à la politique de sérialisation et gonfle mon JS. Comment découper ma liste blanche GWT à la main? Ou devrais-je du tout? Par exemple, si je place l'interface List sur une classe de service GWT RPC, GWT doit générer un Javascript qui gère ArrayList, LinkedList, Stack, Vector, ... même si mon équipe sait que nous n'allons jamais que retourne une ArrayList. Je pourrais juste faire le retour de la méthode de type ArrayList, mais j'aime me fier à une interface plutôt qu'à une implémentation spécifique. Après tout, peut-être un jour nous allons le changer et revenir par exemple. une LinkedList. Dans ce cas, je voudrais forcer la stratégie de sérialisation GWT à compiler uniquement pour ArrayList et LinkedList. Pas de piles ou de vecteurs.
Ces restrictions implicites ont un énorme inconvénient que je peux penser: un nouveau membre de l'équipe commence à retourner des vecteurs, ce qui sera une erreur d'exécution. Donc, en plus de la question dans le titre, quelle est votre expérience de conception autour de cela?
Quel est votre objectif de conception? Sécurité? performance? –
Performance, en un mot: pour réduire la taille du JS maintenant et dans le futur. Si nous commençons à envoyer Sets et Maps via RPC, il y aura une autre explosion de classe.L'autre objectif est de maintenir les meilleures pratiques de codage. S'il y a un problème de sécurité que je ne vois pas, faites le moi savoir. – Bluu
Cela me semble avoir une solution très simple. De toute évidence, vous savez ce que c'est, comme vous l'avez dit vous-même. Pourquoi aller tant de mal à essayer de changer GWT? Cela semble stupide. À l'avenir, si jamais vous deviez retourner LinkedList, vous pouvez changer d'interface. Je pense que si votre objectif de conception est la performance, alors changez juste le type de retour à ArrayList et soyez fini avec lui. Mes 2 cents. –