Qual é a diferença entre as anotações JAXB colocadas em getter versus setters versus membros?

O título diz tudo.

Gostaria de saber qual é a diferença principal entre colocar a anotação JAXB (como@XmlElement) no campo / getter / setter. Parece-me que (em casos simples) isso não importa.

Por exemplo. vamos pegar isso

class A  {
    private String a;

    public String getA() { return a; }

    public void setA(String a) { this.a = a; }
}

agora parece-me que não importa se eu colocar@XmlElement no campo membro ou no getter / setter. Apenas marshalls ok. Existem casos de uso em que preciso fazer a diferença e quando isso importa?

Quando vou desmarcar isso (xml de volta a A), o que JAXB faz especificamente?

Estou usando a implementação JAXB MOXy

obrigado

questionAnswers(2)

yourAnswerToTheQuestion