O exemplo neste artigo descreve como Java usa reflexão para encapsular automaticamente objetos de entidade. Compartilhe com todos para sua referência. A análise específica é a seguinte:
Ao usar este método, o nome do parâmetro que precisa ser passado deve terminar com um número de linha. Se o número da linha for removido, será o nome do atributo. Por exemplo, se a página passar name+rowNo, então o nome do atributo. do objeto da entidade deve ser o nome. O código é o seguinte. Copie o código. O código é o seguinte: // Obtenha os dados da página e os encapsule automaticamente em um objeto bean.
Lista pública getObjectList(Classe clazz,String[] rowNos) lança Exceção{
ListaobjList = new ArrayList();
for(int i=0;rowNos!=null && i<rowNos.length;i++){
//Cria instância do objeto
Objeto objeto = clazz.newInstance();
//Obtém os atributos declarados pela classe
Campo[] campos = clazz.getDeclaredFields();
Buffer StringBuffer = nulo;
//Percorre as propriedades e realiza o encapsulamento
for(int j=0;j<campos.comprimento;j++){
//Obtém o nome do atributo
String nomeDoCampo = campos[j].getNome();
//Obtém o nome do parâmetro
String paraNome = campos[j].getNome()+rowNos[i];
//Se o valor do parâmetro obtido estiver vazio, continua o loop
Valor da string = getValueNull(paraNome);
if(valor==nulo){
continuar;
}
//Valor do parâmetro
Object[] paramValue =new Object[1];
if(fields[j].getType().toString().equals("class java.lang.String")){
paramValor[0]=valor;
}
if(fields[j].getType().toString().equals("class java.lang.Integer")){
paramValue[0]=new Inteiro(valor);
}
if(fields[j].getType().toString().equals("class java.lang.Double")){
paramValue[0]=new Duplo(valor);
}
if(fields[j].getType().toString().equals("class java.util.Date")){
SimpleDateFormat sdf = new SimpleDateFormat("aaaa-MM-dd");
paramValue[0]=sdf.parse(valor);
}
//Tipo de parâmetro
Classe[] paramType= {fields[j].getType()};
//Obtém o nome do método set
buffer = new StringBuffer("conjunto");
buffer.append(fieldName.substring(0, 1).toUpperCase());
buffer.append(fieldName.substring(1));
//Pegue e coloque de volta
Método método = clazz.getDeclaredMethod(buffer.toString(), paramType);
//método de execução
método.invoke(objeto,paramValue);
}
//Coloca o objeto atual na lista
objList.add(objeto);
}
return listaobj;
}
Espero que este artigo seja útil para a programação Java de todos.