BeanUtils.populate 메서드를 사용하여 String []을 ArrayList로 변환하는 방법은 무엇입니까? ArrayConverter 클래스를 사용할 수있는 것처럼 보이지만 그렇게하는 방법에 대한 설명을 찾는 데 어려움을 겪고 있습니다. 여기 BeanUtils.populate 메서드를 사용하여 String []을 ArrayList <String>으로 변환하려면 어떻게해야합니까?
은 내가 만든 몇 가지 테스트 코드 :public class TestAction {
public static TestBean testPopulate() throws IllegalAccessException, InvocationTargetException {
HashMap<String, Object> map = new HashMap<String, Object>();
TestBean bean = new TestBean();
String[] names = {"teststring","testboolean","testinteger","testarray"};
String[] array = {"hi","bye"};
Object[] values = {"TEST","","100",array};
int i = 0;
while (i < names.length) {
String name = names[i];
map.put(name, values[i]);
i++;
}
BeanUtils.populate(bean, map);
return bean;
}
public static void main(String[] args) {
try {
TestBean bean = testPopulate();
System.out.println(bean.getTeststring() + " " + bean.getTestinteger() + " " + bean.getTeststring() + " " + bean.isTestboolean());
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public class TestBean {
private String teststring;
private boolean testboolean;
private int testinteger;
private ArrayList<String> testarray;
public String getTeststring() {
return teststring;
}
public void setTeststring(String teststring) {
this.teststring = teststring;
}
public boolean isTestboolean() {
return testboolean;
}
public void setTestboolean(boolean testboolean) {
this.testboolean = testboolean;
}
public int getTestinteger() {
return testinteger;
}
public void setTestinteger(int testinteger) {
this.testinteger = testinteger;
}
public ArrayList<String> getTestarray() {
return testarray;
}
public void setTestarray(ArrayList<String> testarray) {
this.testarray = testarray;
}
}
나는 []는 ArrayList와로 변환하는 방법을 알고 기대 입력 문자열을 전달하지만 실패합니다.
이제 알았습니다. String []을 ArrayList으로 변경했으며 코드가 오류없이 실행되었습니다. String []에서 ArrayList 으로 변환 할 때 BeanUtils가 의도적으로 실패합니다. Java의 HttpServletRequest 클래스가 String 또는 String [] 유형을 반환하기 때문에 추가 질문으로서, 그렇다면 bean에서 원시 유형과 String [] 유형 만 사용하도록해야합니까? –
user2191540
'HttpServletRequest'의 어떤 메소드가 있습니까? bean에 전달 된 데이터의 타입이'String []'이라면, bean에서 배열을 사용하고, 그것을'List' 객체로 변환하는 것이 타당 할 것입니다. 너 필요해. 또는 사전 처리를 수행하십시오. Map을 BeanUtils.populate에 전달하기 전에, 당신이 사용하고자하는'List' 객체를 생성하고 대신 맵에 넣으십시오. – dimo414
아 ...전처리는 내가 그것을 시도 할 좋은 생각이다. 제안 해줘서 고마워. – user2191540