Gerando instância completa de um objeto
Publicado por Francisco Souza 07/04/2009
[ Hits: 5.729 ]
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; } }
HACK :: Microsoft SQL 2000 JDBC Driver
Instalando java no ubuntu, fácil e rápido...
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
verificar se uma fonte já esta instalada (30)
Configuração de impressora térmica (0)
Linux mint está congelando/tr... (4)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta