2011-10-28 2 views
2

J'ai un champ qui est une composition de deux valeurs. C'est le champ qui est sérialisé vers/à partir de JSON et fonctionne très bien. J'ai ajouté deux méthodes auxiliaires pour extraire les valeurs séparées, mais je ne veux pas les sérialiser en JSON.Comment puis-je dire à java.beans.Introspector d'ignorer une méthode getter?

public String getCurrentRevision() { ... return first revision ... } 
public String getPreviousRevision() { ... return second revision ... } 

Est-il possible que je peux dire java.beans.Introspector d'ignorer ces getters supplémentaires lors de la construction du BeanInfo via getBeanInfo()? Une annotation serait belle, et j'espère vraiment éviter d'avoir à créer manuellement mon propre BeanInfo pour cela.

+0

Avez-vous des champs actuels currentRevision et previousRevision? Ou juste les méthodes? –

+0

@G_H - Juste les méthodes qui retournent une partie du champ 'revisions' réel. –

+0

Dans ce cas, il est possible que l'Introspector ne le reconnaisse pas comme une propriété de haricot. Je pense que le champ et au moins un accesseur/mutateur avec le nom propre est requis. Peut-être lancer un court test pour vérifier cette théorie. –

Répondre

2

Peut-être essayer cette annotation de l'API de haricots: http://download.oracle.com/javase/7/docs/api/java/beans/Transient.html

Ils vous conseillons de placer effectivement sur le getter, de sorte que semble correspondre à la facture.

EDIT: oops, juste remarqué que cela a été introduit dans Java 7. Donc vous devrez vous assurer que cela fonctionne dans un environnement JRE très récent si vous voulez l'utiliser.

+0

Bummer, nous utilisons Java 6 bien que nous * ayons * le contrôle sur les serveurs. Oui, cela semble certainement résoudre le problème si nous pouvons améliorer. –

+0

Je n'ai pas eu l'occasion de l'essayer, mais je suppose que c'est le ticket pour Java 7. –

Questions connexes