這里說的名稱沖突指的是: JavaBean 屬性名稱與字段名稱之間的名稱沖突。
在pojo類中的setter和getter方法會導致運行報錯:
Exception in thread "main" com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException:
2 counts of IllegalAnnotationExceptions
這時我們就要用到另一個注釋:@XmlTransient,用來防止映射使用@XmlTransient注釋的字段或者javabean的屬性,從而解決名稱沖突。
具體的用法是將@XmlElement和@XmlTransient分別加到javabean屬性前和對應的getter方法前:
package entity;
import java.io.Serializable;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
@XmlRootElement //表示student是一個跟元素
public class Student implements Serializable {
@XmlElement //name作為student的一個子元素
private String name;
@XmlElement //gender作為student的一個子元素
private String gender;
public Student() {
}
public Student(String name, String gender) {
this.name = name;
this.gender = gender;
}
@XmlTransient
public String getName() {
return name;
}
@XmlTransient
public String getGender() {
return gender;
}
public void setName(String name) {
this.name = name;
}
public void setGender(String gender) {
this.gender = gender;
}
}
原文:https://blog.csdn.net/huanghanqian/article/details/51549066