无法使用@XmlTransient批注对类进行批注

时间:2014-01-31 05:44:58

标签: java

以下是我的代码,

我无法用@XmlTransient注释注释类

netbeans IDE说注释类型不适用于此类声明。

我使用netbeans运行JDK 1.6和Jaxb 1.5。

感谢您的帮助。

import com.duncansolutions.databus.external.util.xml.XMLDateAdapter;
import com.duncansolutions.databus.external.xml.parkmobile.PayByCell;
import java.io.Serializable;
import java.util.Date;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlTransient;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;


@XmlTransient
public class AddTime extends PayByCell implements Serializable{

private Integer transmissionId;
private Integer spaceNumber;


@XmlElement(name = "TransmissionID")
public Integer getTransmissionId() {
    return transmissionId;
}

public void setTransmissionId(Integer transmissionId) {
    this.transmissionId = transmissionId;
}

@XmlElement(name = "SpaceNumber")
public Integer getSpaceNumber() {
    return spaceNumber;
}

public void setSpaceNumber(Integer spaceNumber)
{
    this.spaceNumber = spaceNumber;
}

@XmlJavaTypeAdapter(XMLDateAdapter.class)
@XmlElement(name = "StartDateTime")
@Override
public Date getStartTime() {
    return startTime;
}

@XmlJavaTypeAdapter(XMLDateAdapter.class)
@XmlElement(name = "EndDateTime")
@Override
public Date getExpTime() {
    return expTime;
}  
}

2 个答案:

答案 0 :(得分:0)

@Retention(value=RUNTIME)
@Target(value={FIELD,METHOD})
public @interface XmlTransient

正如您所看到的,注释@XmlTransient只能应用于FIELDs或METHODS。这就是API所说的。 此注释避免将特定成员变量写入XML中对象的表示形式。

http://docs.oracle.com/javaee/5/api/javax/xml/bind/annotation/XmlTransient.html

答案 1 :(得分:0)

根据the documentation@XmlTransient仅适用于字段或方法,而不适用于类。当然,这是来自Java EE 5;似乎in Java EE 6和更新,你被允许这样做。

如果您想使用它,请确保您使用的是较新的Java EE JAR。