Un projet d'entreprise récent nécessitait l'exportation d'un fichier csv. Un collègue a utilisé la méthode la plus primitive pour extraire chaque enregistrement et ajouter "," pour résoudre le problème.
Mais le client a ensuite demandé que cette fonction soit ajoutée à chaque page. Ainsi, le problème vient, il y a trop de codes écrits séparément, et ensemble, ils ne peuvent pas déterminer quel objet est stocké dans la liste et ne peuvent pas utiliser la méthode get pour obtenir des attributs.
J'ai toujours pensé que lorsqu'il l'écrivait comme ça, le programme était écrit à mort. Cependant, après de nombreuses tentatives, l'objet a toujours été retiré de la liste via la réflexion Java et la valeur de l'attribut a été supprimée de l'objet :
Voici le code :
package com.hb.test; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; public class Test { public static void main(String[] args) throws IllegalArgumentException, Exception { Person p1 = new Person("111", "aaa"); Person p2 = new Person("222", "bbb"); List list = new ArrayList(); list.add(p1); list.add(p2); test(list); } public static void test(List list) throws Exception, IllegalAccessException { for (int i = 0; i < list.size(); i++) { Field[] fields = list.get(i).getClass().getDeclaredFields(); Object oi = list.get(i); for (int j = 0; j < fields.length; j++) { if(!fields[j].isAccessible()){ fields[j].setAccessible(true); } System.out.println(fields[j].get(oi)); } } } }
Est-ce que cela fonctionne ? Lorsque vous savez quel objet est retiré de la liste, vous pouvez également obtenir la valeur d'attribut de l'objet. Vous pouvez écrire une méthode publique à transmettre dans l'objet List, puis générer un fichier csv et l'exporter. .
Pour plus de méthodes Java pour supprimer des objets de la liste et obtenir leurs valeurs d'attribut, veuillez faire attention au site Web PHP chinois !