L'exemple de cet article décrit comment Java utilise la réflexion pour encapsuler automatiquement les objets d'entité. Partagez-le avec tout le monde pour votre référence. L’analyse spécifique est la suivante :
Lors de l'utilisation de cette méthode, le nom du paramètre qui doit être transmis doit se terminer par un numéro de ligne. Si le numéro de ligne est supprimé, il s'agit du nom de l'attribut. Par exemple, si la page passe nom+rowNo, alors le nom de l'attribut. de l'objet entité doit être le nom. Le code est le suivant. Copiez le code. Le code est le suivant : // Récupère les données de la page et les encapsule automatiquement dans un objet bean.
La liste publique getObjectList (Class clazz,String[] rowNos) lève une exception{
Liste objList = new ArrayList();
for(int i=0;rowNos!=null && i<rowNos.length;i++){
//Créer une instance d'objet
Objet objet = clazz.newInstance();
//Récupère les attributs déclarés par la classe
Field[] champs = clazz.getDeclaredFields();
Tampon StringBuffer = null ;
//Parcourir les propriétés et effectuer l'encapsulation
pour(int j=0;j<fields.length;j++){
//Récupère le nom de l'attribut
Chaîne fieldName = field[j].getName();
//Récupère le nom du paramètre
Chaîne paraName = field[j].getName()+rowNos[i];
//Si la valeur du paramètre obtenue est vide, continuez la boucle
Valeur de chaîne = getValueNull(paraName);
si(valeur==null){
continuer;
}
//Valeur du paramètre
Objet[] paramValue =nouvel Objet[1];
if(fields[j].getType().toString().equals("class java.lang.String")){
paramValue[0]=valeur ;
}
if(fields[j].getType().toString().equals("class java.lang.Integer")){
paramValue[0]=new Integer(valeur);
}
if(fields[j].getType().toString().equals("class java.lang.Double")){
paramValue[0]=new Double(valeur);
}
if(fields[j].getType().toString().equals("class java.util.Date")){
SimpleDateFormat sdf = new SimpleDateFormat("aaaa-MM-jj");
paramValue[0]=sdf.parse(valeur);
}
//Type de paramètre
Class[] paramType= {fields[j].getType()} ;
//Obtenir le nom de la méthode set
buffer = new StringBuffer("set");
buffer.append(fieldName.substring(0, 1).toUpperCase());
buffer.append(fieldName.substring(1));
//Récupérer et remettre
Méthode méthode = clazz.getDeclaredMethod(buffer.toString(), paramType);
//méthode d'exécution
method.invoke(objet,paramValue);
}
//Mette l'objet courant dans la liste
objList.add(objet);
}
retourner objList ;
}
J'espère que cet article sera utile à la programmation Java de chacun.