최근 회사 프로젝트에서 csv 파일을 내보내야 했는데 동료가 가장 원시적인 방법을 사용하여 각 기록을 추출하고 ","를 추가하여 문제를 해결했습니다.
그런데 고객이 나중에 이 기능을 모든 페이지에 추가해 달라고 요청했습니다. 그래서 문제는 별도로 작성된 코드가 너무 많아 목록에 어떤 객체가 저장되어 있는지 함께 확인할 수 없으며 get 메소드를 사용하여 속성을 얻을 수 없다는 것입니다.
저는 항상 그 사람이 프로그램을 그렇게 썼을 때 프로그램을 죽였다고 생각했습니다. 그러나 여러 번 시도한 후에도 여전히 Java 리플렉션을 통해 객체가 목록에서 제거되었으며 객체에서 속성 값이 제거되었습니다.
다음 코드는
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)); } } } }
입니다. 이렇게 하면 목록에서 개체를 제거할 때 개체의 속성 값을 가져올 수도 있습니다. 목록 개체를 전달한 다음 csv 파일을 생성할 수도 있습니다. 그리고 내보냅니다.
목록에서 개체를 제거하고 해당 속성 값을 얻는 더 많은 Java 메서드를 보려면 PHP 중국어 웹사이트에 주목하세요!