Gerando instância completa de um objeto
Publicado por Francisco Souza 07/04/2009
[ Hits: 5.789 ]
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; } }
Pilha Dinâmica Orientada a Objetos com Java
Conversor de bases decente não essas bostas que tem nesse site.
HACK :: Microsoft SQL 2000 JDBC Driver
Nenhum comentário foi encontrado.
Como gerar qualquer emoji ou símbolo unicode a partir do seu teclado
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Muitas dificuldades ao instalar distro Linux em Notebook Sony Vaio PCG-6131L (VPCEA24FM)
Slackpkg+ (Slackpkg Plus) está de volta!
Como dividir duas janelas igualmente e lado-a-lado na sua tela
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
Minha rede tem um espaço invisível que não dá pra digitar o nome da re... (1)
Pedagogia no brasil não passa de alfabetização por m4sturbação mental ... (2)
compilação samba 4.22 rock linux 9.5 (3)
Erro de segmentação «Segmentation fault (core dumped)» ao retornar obj... (7)