이 문서의 예에서는 Java가 리플렉션을 사용하여 엔터티 개체를 자동으로 캡슐화하는 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다.
이 방법을 사용할 때 전달해야 하는 매개변수의 이름은 행 번호로 끝나야 합니다. 행 번호가 제거되면 이는 속성 이름입니다. 예를 들어 페이지가 name+rowNo를 전달하면 속성 이름이 됩니다. 엔터티 개체의 이름이 있어야 합니다. 코드는 다음과 같습니다. 코드는 다음과 같습니다. // 페이지 데이터를 가져와서 자동으로 Bean 객체에 캡슐화합니다.
공개 목록 getObjectList(Class clazz,String[] rowNos)에서 예외 발생{
목록 objList = new ArrayList();
for(int i=0;rowNos!=null && i<rowNos.length;i++){
//객체 인스턴스 생성
객체 객체 = clazz.newInstance();
//클래스가 선언한 속성을 가져옵니다.
Field[] fields = clazz.getDeclaredFields();
StringBuffer 버퍼 = null;
//속성을 탐색하고 캡슐화를 수행합니다.
for(int j=0;j<fields.length;j++){
//속성 이름을 알아낸다
문자열 fieldName = fields[j].getName();
//파라미터 이름을 알아낸다
문자열 paraName = fields[j].getName()+rowNos[i];
//얻은 매개변수 값이 비어 있으면 루프를 계속합니다.
문자열 값 = getValueNull(paraName);
if(값==null){
계속하다;
}
//매개변수 값
객체[] paramValue =new 객체[1];
if(fields[j].getType().toString().equals("class java.lang.String")){
paramValue[0]=값;
}
if(fields[j].getType().toString().equals("class java.lang.Integer")){
paramValue[0]=new 정수(값);
}
if(fields[j].getType().toString().equals("class java.lang.Double")){
paramValue[0]=new Double(값);
}
if(fields[j].getType().toString().equals("class java.util.Date")){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
paramValue[0]=sdf.parse(값);
}
//매개변수 유형
Class[] paramType= {fields[j].getType()};
//set 메소드의 이름을 가져옵니다.
buffer = new StringBuffer("세트");
buffer.append(fieldName.substring(0, 1).toUpperCase());
buffer.append(fieldName.substring(1));
//가지고 다시 넣기
메소드 method = clazz.getDeclaredMethod(buffer.toString(), paramType);
//실행 방법
method.invoke(object,paramValue);
}
//현재 객체를 목록에 넣습니다.
objList.add(객체);
}
objList를 반환합니다.
}
이 글이 모든 사람의 Java 프로그래밍에 도움이 되기를 바랍니다.