我试图在我的java类中将我的java方法注释为@XmlTransient
,如下所示。
@XmlAccessorType(XmlAccessType.PROPERTY)
public abstract class MyClass {
@XmlTransient
public void addsomething{
// do something
}
}
当我尝试通过其他类在我的JaxBContext中使用此类时,我遇到了异常
JAXB annotation is placed on a method that is not a JAXB property
this problem is related to the following location:
at @javax.xml.bind.annotation.XmlTransient()
,
但是,当我看到XmlTransient()
注释定义(@Target(value={FIELD,METHOD,TYPE}))
时,显然可以使用方法。在JavaDoc(http://docs.oracle.com/javaee/7/api/javax/xml/bind/annotation/XmlTransient.html)中它说
The @XmlTransient annotation can be used with the following program elements:
a JavaBean property
field
class
我不能在方法上使用@XmlTransient
吗?
答案 0 :(得分:2)
@XmlTransient
可以使用的唯一方法是以get
或set
开头的方法。组合使用的这些方法用于在Java中公开属性。 @XmlTransient
可以放在get
或set
方法上。
获取方法
get方法必须不带参数并返回值:
public String getFoo() {
return foo;
}
设置方法
set方法必须带一个参数。
public void setFoo(String foo) {
this.foo = foo;
}