Boa tarde pessoal, tenho um método que é passado varios valores e um deles é uma entidade do banco de dados, supondo que passe a entidade A para essa classe, como posso passar B sem precisar reescrever todo o método?
no caso, entidade representaria uma tabela… que em java é uma classe.
acho q vc teria msmo é criar outro metodo, que aceita esse objeto
ouuuu, vc declarar no metodo como um Object, e depois verificar de qual instancia esse objeto se refere.
public void metodo(String a, String b, Object obj){
if(obj instace of ClasseTal){
ClasseTal ob = (ClasseTal) obj;
}
}
Bom dia andrezito, da forma que você falou eu teria que fazer uma condicional gigante no meu caso, pois são muitas entidades, achei que tinha uma forma mais clean. Obrigado pela resposta.
Se são tantas entidades diferentes, talvez seja o caso de repensar e avaliar se realmente deveria ser um único método.
O que esse método faz aliás? Dependendo do caso, pode ser melhor separar em métodos diferentes. Sem mais detalhes, não tem muito mais o que sugerir…
Bom dia hugokatsubo, meu método é este:
public class RespostaDTO {
String mensagem;
Integer status;
List<String> argumentos;
CargoDTO cargo;
public RespostaDTO() {
}
public RespostaDTO(String mensagem, Integer status, List<String> argumentos, CargoDTO cargo) {
this.mensagem = mensagem;
this.status = status;
this.argumentos = argumentos;
this.cargo = cargo;
}
public String getMensagem() {
return mensagem;
}
public void setMensagem(String mensagem) {
this.mensagem = mensagem;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public List<String> getArgumentos() {
return argumentos;
}
public void setArgumentos(List<String> argumentos) {
this.argumentos = argumentos;
}
public CargoDTO getCargo() {
return cargo;
}
public void setCargo(CargoDTO cargo) {
this.cargo = cargo;
}
O CargoDTO
é a entidade, esse DTO retorna uma mensagem, os argumentos da mensagem, o status da mensagem e o DTO. O que queria era reaproveitar esse DTO já que a unica coisa que muda é a entidade. Visto a quantidade de entidades talvez seja necessário criar sempre um mesmo.
Se estou a perceber o teu problema, generics deve resolver
public class RespostaDTO<T> {
String mensagem;
Integer status;
List<String> argumentos;
T entidade;
public RespostaDTO() {
}
public RespostaDTO(String mensagem, Integer status, List<String> argumentos, T entidade) {
this.mensagem = mensagem;
this.status = status;
this.argumentos = argumentos;
this.entidade= entidade;
}
public String getMensagem() {
return mensagem;
}
public void setMensagem(String mensagem) {
this.mensagem = mensagem;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public List<String> getArgumentos() {
return argumentos;
}
public void setArgumentos(List<String> argumentos) {
this.argumentos = argumentos;
}
public T getEntidade() {
return entidade;
}
public void setEntidade(T entidade) {
this.cargo = cargo;
}
}
Era isso mesmo que estava atras! Obrigado.