Bom dia a todos,
Estou desenvolvendo um serializador json usando o gson 2.5
Tenho minha classe Serializador que contem o métodos public String getJson(Object objeto){…}
e um método privado responsável por obter o tipo de cada atributo da classe,
private Class<?> getTipoAtual(Field campo) {
Type tipoGenerico = campo.getGenericType();
ParameterizedType tipo= (ParameterizedType) tipoGenerico;
return (Class<?>) tipoGenerico.getActualTypeArguments()[0];
}
Agora estou tendo problemas para serializar classes com generics, pois ele retorna como tipo T e não o tipo que foi passado como parametro.
public class RespostaJson{
private Boolean sucesso;
private String mensagem;
private T obj;
public Boolean getSucesso() {
return sucesso;
}
public void setSucesso(Boolean sucesso) {
this.sucesso = sucesso;
}
public String getMensagem() {
return mensagem;
}
public void setMensagem(String mensagem) {
this.mensagem = mensagem;
}
public T getObj() {
return obj;
}
public void setObj(T obj) {
this.obj = obj;
}
}
public class Pessoa{
private Integer id;
private String nome;
private Telefone telefone;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public Telefone getTelefone() {
return telefone;
}
public void setTelefone(Telefone telefone) {
this.telefone = telefone;
}
}
public class PessoaFisica extends Pessoa{
private LocalDate dataNascimento;
public LocalDate getDataNascimento() {
return dataNascimento;
}
public void setDataNascimento(LocalDate dataNascimento) {
this.dataNascimento = dataNascimento;
}
}