浅谈Java对象之间相互转化的多种方式
在Java编程中,对象之间的相互转换是非常常见的操作。本文将介绍一些Java对象之间相互转换的多种方式。
1.使用构造函数进行对象转换
Java的构造函数是一种用于创建和初始化对象的特殊方法。构造函数可以使用另一个对象来初始化一个新的对象。下面是一个使用构造函数进行对象转换的示例代码:
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
public class Student {
private String name;
private int age;
private String school;
public Student(Person person, String school) {
this.name = person.getName();
this.age = person.getAge();
this.school = school;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getSchool() {
return school;
}
}
public class Main {
public static void main(String[] args) {
Person person = new Person("张三", 18);
Student student = new Student(person, "清华大学");
System.out.println(student.getName() + " " + student.getAge() + " " + student.getSchool());
}
}
在上面的示例代码中,我们定义了两个类Person
和Student
,Student
类中有一个构造函数,用于将Person
对象转换为Student
对象。在Student
类的构造函数中,我们使用了Person
类的属性来初始化Student
类的属性。
2.使用转换方法进行对象转换
Java中的转换方法是一种用于将一个对象转换为另一个对象的方法。Java提供了两种类型的转换方法:静态转换和动态转换。下面是一个使用静态转换方法进行对象转换的示例代码:
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
public class Student {
private String name;
private int age;
private String school;
public Student(String name, int age, String school) {
this.name = name;
this.age = age;
this.school = school;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getSchool() {
return school;
}
public static Student from(Person person, String school) {
return new Student(person.getName(), person.getAge(), school);
}
}
public class Main {
public static void main(String[] args) {
Person person = new Person("张三", 18);
Student student = Student.from(person, "清华大学");
System.out.println(student.getName() + " " + student.getAge() + " " + student.getSchool());
}
}
在上面的示例代码中,我们在Student
类中定义了一个静态方法from
,用于将Person
对象转换为Student
对象。在from
方法中,我们使用Person
对象的属性来初始化Student
对象的属性。
新增:使用第三方库进行对象转换
除了以上两种方式,还可以使用第三方库来进行对象转换。常用的第三方库有Jackson
、Gson
等。下面是一个使用Jackson
进行对象转换的示例代码:
public class Person {
private String name;
private int age;
public Person() {}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
}
public class Student {
private String name;
private int age;
private String school;
public Student() {}
public Student(String name, int age, String school) {
this.name = name;
this.age = age;
this.school = school;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getSchool() {
return school;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public void setSchool(String school) {
this.school = school;
}
}
public class Main {
public static void main(String[] args) throws JsonProcessingException {
Person person = new Person("张三", 18);
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(person);
Student student = mapper.readValue(json, Student.class);
student.setSchool("清华大学");
System.out.println(student.getName() + " " + student.getAge() + " " + student.getSchool());
}
}
在上面的示例代码中,我们使用Jackson
将Person
对象转换为JSON
格式,并将其转换为Student
对象。在将JSON
转换为Student
对象后,我们可以对Student
对象进行属性的修改和访问。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:浅谈java对象之间相互转化的多种方式 - Python技术站