我正在创建一个测试应用程序,以便在传递给控制器之前实现从XML String到Employee对象的转换.我不想使用JAXB转换器,因为我的目的是测试自定义HTTP消息转换器,我将在我的实际用例中使用它涉及使用SAX解析器和一些复杂规则进行XML解析.
以下是执行的关键步骤:
Employee.java
@Component
@XmlRootElement(name="employee")
@XmlAccessorType(XmlAccessType.FIELD)
public class Employee{
@XmlElement(name="name")
String name;
@XmlElement(name="designation")
String designation;
@XmlElement(name="skill")
String skill;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDesignation() {
return designation;
}
public void setDesignation(String designation) {
this.designation = designation;
}
public String getSkill() {
return skill;
}
public void setSkill(String skill) {
this.skill = skill;
}
}
Run Code Online (Sandbox Code Playgroud)
EmployeeManagementController.java …
在Java 8中,docs用于distinct()中间操作状态
返回由该流的不同元素组成的流(根据> Object.equals(Object))。对于有序流,选择不同的元素是稳定的(对于重复的元素,该元素首先出现
但是它没有被调用
我的Item类中的Equals方法
@Override
public boolean equals(Object obj) {
System.out.println(this.name+"<->"+((Item)obj).name);
return this.name.equals(((Item)obj).name);
}
Run Code Online (Sandbox Code Playgroud)
在数据类中定义数据
public static List<Item> getItemList(){
itemData.add(new Item("Orange","Citrus Fruit","Orange",30,true,false));
itemData.add(new Item("Apple Green","Universal Fruit","Green",60,false,true));
itemData.add(new Item("Papaya","Wonderful Fruit","Yellow",120,false,true));
itemData.add(new Item("Papaya","Wonderful Fruit","Green",100,false,true));
.
.
.
itemData.add(new Item("Strawberry","Citrus Fruit","Red",25,true,false));
itemData.add(new Item("Sapota","Brown Fruit","Brown",32,false,true));
return itemData;
}
Run Code Online (Sandbox Code Playgroud)
使用流
Data.getItemList().stream().distinct().forEach(System.out::println)
Run Code Online (Sandbox Code Playgroud)
但我意识到equals方法没有被调用