复制
收藏
提问
简洁
1、有一个用户类User,里面有如下属性:id、姓名、年龄、手机号,请基于xml方式创建类的对象以及为属性注入值。写出核心代码即可
2月前
全网
文档
学术
百科
知识库
回答简洁模式
深入研究一些
在Java中,使用XML来创建类的对象并为属性注入值通常涉及到使用XML解析库,如JAXB(Java Architecture for XML Binding)。以下是一个基于XML方式创建User
类对象并注入属性值的核心代码示例:
import javax.xml.bind.annotation.*;
import java.util.List;
// 定义User类,使用JAXB注解
@XmlRootElement
public class User {
// 使用注解标记属性,以便在XML中进行映射
@XmlElement(name = "id")
private int id;
@XmlElement(name = "name")
private String name;
@XmlElement(name = "age")
private int age;
@XmlElement(name = "phone")
private String phone;
// 构造函数、getter和setter方法
public User() {}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
// toString方法,用于打印用户信息
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
", phone='" + phone + '\'' +
'}';
}
}
// 假设XML文件内容如下:
// <user>
// <id>1</id>
// <name>张三</name>
// <age>30</age>
// <phone>1234567890</phone>
// </user>
// 使用JAXBContext来创建一个Unmarshaller对象
JAXBContext jaxbContext = JAXBContext.newInstance(User.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
// 从XML文件中反序列化User对象
User user = (User) jaxbUnmarshaller.unmarshal(new File("user.xml"));
// 打印User对象信息
System.out.println(user);
请注意,上述代码是一个示例,实际使用时需要根据具体的XML结构和类定义进行调整。此外,还需要处理异常和错误情况,这里为了简洁起见没有展示。1256789
你觉得结果怎么样?