过去几天我使用 Java 和 Spring Framework 。由于我必须使用 XML 进行大量请求,其中许多已经使用 JAXB 实现,我确实决定采用这种方法。我必须使用的大多数 XML 请求过于复杂并且包含许多嵌套元素,因此使用 JAXB 的这种方法有时会令人筋疲力尽。我在此应用程序中找到的代码示例似乎是一种以非常快的方式生成 XML 消息的好方法。如下所示:
@XmlRootElement(name = "customer")
@XmlAccessorType(XmlAccessType.FIELD)
public class Customer {
@XmlAttribute(name = "name")
@get @set private String name;
@XmlAttribute(name = "age")
@get @set private int age;
@XmlElement(name = "car")
@get @set private Car car;
public static Customer withAttributes(String name, int age, Car car) {
Customer customer = new Customer();
customer.setName(name);
customer.setAge(age);
customer.setCar(car);
return customer;
}
@XmlRootElement(name = "car")
@XmlAccessorType(XmlAccessType.FIELD)
public class Car {
@XmlAttribute(name = "color")
@get @set private String color;
public static Car withAttributes(String color){
Car car = new Car();
car.setColor(color);
return car;
}
}
}
我按照以下方式调用这些静态方法:
Car car = Car.withAttributes("Blue");
Customer customer = Customer.withAttributes("Tom", 22, car);
当然,经过这些操作后,我使用 Marshal 和 Unmarshal 操作并发送POST请求等,但现在无关紧要。
我想知道这种方法有什么好处?性能? 有没有更好的方法来做同样的事情,方式和方式?
我已经在帖子中讲过静态方法的好处Java: when to use static methods,但我找不到与上面类似的东西。