Boa noite pessoal
consigo passar uma classe como parâmetro?
ex:
public ClasseDados editar(ClasseDados data) {
return "/paginas/editar.xhtml?faces-redirect=true"
+ "&dados=" + data;
}
Valeu
Boa noite pessoal
consigo passar uma classe como parâmetro?
ex:
public ClasseDados editar(ClasseDados data) {
return "/paginas/editar.xhtml?faces-redirect=true"
+ "&dados=" + data;
}
Valeu
Boa noite. Poderia dizer a qual finalidade? Até onde sei, conforme meu conhecimento de mero aprendiz, e como vi no livro Java como programar, “os parâmetros de um método são VARIÁVEIS LOCAIS dele, são dados para realizar suas tarefas”. A não ser que você esteja se referindo a classes anônimas, como acontece com tratamentos de eventos.
Não vou dizer que é uma boa explicação, mas você pode obter a classe, com NomeDaClasse.class ou objeto.getClass().
Não tenho conhecimento suficiente sobre o assunto também.
Procure saber a diferença entre parâmetro e argumento.
Para seu questionamento procure sobre reflection.
No caso o tipo do parâmetro deveria ser Class e o nome/ identificador do parâmetro o que você escolher, no caso foi data.
Outro detalhe:
O retorno esperado é um objeto do tipo ClasseDados, mas o retorno realizado é diferente(String), portanto está incorreto.
Para fins de exemplo, veja esta implementação:
import java.lang.reflect.InvocationTargetException;
import java.util.logging.Level;
import java.util.logging.Logger;
public class Teste {
public static void main(String[] args) {
Teste novo = new Teste();
System.out.println(novo.editar(Teste.class));//PASSANDO a classe como argumento
System.out.println(novo.editar(novo));//PASSANDO uma instância da classe
}
public String editar(Class data) {
return "/paginas/editar.xhtml?faces-redirect=true"
+ "&dados=" + data;
}
public Teste editar(Teste data) {
Teste teste = null;
try {
teste = data.getClass().getConstructor().newInstance();
System.out.println("Os objetos novo e teste são iguais? "+data.equals(teste));
} catch (NoSuchMethodException | SecurityException | InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException ex) {
Logger.getLogger(Teste.class.getName()).log(Level.SEVERE, null, ex);
}
return teste;
}
}
Sugestão:
Valeu addller, vou tentar seguir teu exemplo.
Abraço