public class GsonStudentFactory{
....
 public static MasterStudent createMasterStudent(Student student) {
    return gson.fromJson(student.getBody(), MasterStudent.class);
 }

 public static  BTechStudent createBtechStudent(Student student) {
    return gson.fromJson(student.getBody(), BTechStudent.class);
 }
...
}


为了概括起见,我可以使用“如果”条件,并且可以检查“学生的实例是BTechStudent还是MasterStudent”,然后返回适当的BTechStudent或MasterStudent对象。

有没有更好的方法可以概括这两种方法?

注意:-BTechStudent和MasterStudent类扩展了Student类。

提前致谢。

最佳答案

我不确定我是否理解正确,但是请问这是否对您有帮助:

public static <T extends Student> T createStudent(Student student) {
    return gson.fromJson(student.getBody(), (Class<T>) student.getClass());
}


并像这样使用它:

MasterStudent masterStudent = createStudent(student);


要么

BTechStudent btech = createStudent(student);

07-27 23:14