Gerando instância completa de um objeto
Publicado por Francisco Souza 07/04/2009
[ Hits: 5.771 ]
Homepage: http://www.franciscosouza.net
Esta classe possui o método getCompleteInstance que retorna a instância completa de uma data classe, preenchendo valores padronizados para determinados tipos de campos.
O método utiliza os conceitos de recursão e introspecção. A classe está toda documentada.
package br.edu.ifes.defensor.util; import java.lang.reflect.Method; /** * Classe com utilitários para trabalhar com instâncias. * * @author Francisco Antônio da Silva souza * @version 1.0 * */ public class InstanceUtil { /** * Gera uma instância completa de uma classe, com valores padrões para * tipos. * * Caso a classe esteja associada a outra classe, é ativada a recursividade, * que cria instâncias completas em todas as associações de todas as * classes. * * Este método pode ser lento em modelos de classes complexos e com muitas * associações. * * @param cls * Classe que terá uma instância completa. * @return Objeto instanciado. * @throws Exception * Problemas de instanciação ou argumentos inválidos. */ public static Object getCompleteInstance(Class cls) throws Exception { Method[] methods = cls.getDeclaredMethods(); Object obj = cls.newInstance(); for (Method method : methods) { if (method.getName().substring(0, 3).equals("set")) { Class parameter = method.getParameterTypes()[0]; Object value = null; if (parameter.equals(Integer.class)) { value = 0; } else if (parameter.equals(Double.class)) { value = 0.0; } else if (parameter.equals(Boolean.class)) { value = false; } else if (parameter.equals(String.class)) { value = ""; } else { try { value = InstanceUtil.getCompleteInstance(parameter); } catch (Exception e) { value = null; } } Object[] args = { value }; method.invoke(obj, args); } } return obj; } }
J2ME - Simples teste de unicode
Implementação de lista duplamente encadeada orientada a objetos
Nenhum comentário foi encontrado.
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Máquinas Virtuais com IP estático acessando Internet no Virtualbox
Instalar o Microsoft Edge no Slackware 15
Instalando Brave Browser no Linux Mint 22
vídeo pra quem quer saber como funciona Proteção de Memória:
Formatando cartão de memoria que nao formata[AJUDA] (15)
warsaw parou de funcionar após atualização do sistema (solução) (0)
Desde que seja DDR3, posso colocar qualquer memória? [RESOLVIDO] (6)
crontab executar em tempos (1)
Programa duplicado no "Abrir com" e na barra de pesquisa do ... (3)