2017-07-06 27 views
0
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); 
} 
... 
} 

爲了一般化,我可以使用'if'條件,我可以檢查'學生的實例是BTechStudent還是MasterStudent'並返回適當的BTechStudent或MasterStudent對象。如何在工廠模式中編寫一個通用方法來提供對象?

有沒有更好的方法來推廣這兩種方法?

注意: - BTechStudent和MasterStudent類擴展了學生類。

在此先感謝。

回答

1

我不知道如果我理解正確的話,但看看這可以幫助你:

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); 
相關問題