자바 데이터 형식 반사 변환

3851 단어 자바
최근 프로젝트 에서 hibenate 와 유사 한 hibenate 를 통 해 조회 한 데 이 터 는 List 형식 입 니 다. 원 하 는 key, value 형식 이 아 닙 니 다. 그리고 시간 을 내 서 도구 류 를 썼 습 니 다. 자바 의 패 키 징 성 을 파괴 한 것 같 습 니 다. 표 시 를 해 보 세 요. 잘못된 점 이 있 으 면 환영 합 니 다.
실체 클래스: 
 
  
public class User1 {
	
	private int  id;
	
	private int age;
	
	private String name;
	
	private String sex;
	
	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}

	@Override
	public String toString() {
		return "User1 [id=" + id + ", age=" + age + ", name=" + name + ", sex=" + sex + "]";
	}
}


 
  

     SQLToEntityUtils 
  


public class SQLToEntityUtils{
	
	/**
	 * @    : getListFromList
	 *  @    :   List     List
	 *  @   :@param oldLst
	 *  @   :@param clazz
	 *  @   :@return
	 *  @    :List
	 *  @     :2017 5 8   11:55:14
	 */
	public static    List   getListFromList(List oldLst,Class clazz){
		if (null == clazz || null == oldLst || oldLst.isEmpty() ) {
			return null;
		}
		List newLst=new ArrayList();
		try {
			Field[] fields = clazz.getDeclaredFields();
			if (null == fields) {
				return null;
			}
			for (int i=0 ; i T  getObjectFromList(List oldLst,Class clazz){
		if (null == clazz || null == oldLst || oldLst.isEmpty() ) {
			return null;
		}
		//        
		T newObj =null;
		try {
			newObj = clazz.newInstance();
			Field[] fields = clazz.getDeclaredFields();
			if (null == fields) {
				return null;
			}
				Object[] obj = oldLst.get(0);
				//    
				for (int j = 0; j < obj.length; j++) {
					if (null !=obj[j]) {
						fields[j].setAccessible(true);
						fields[j].set(newObj, obj[j]);
					}
				}
				return newObj;
		} catch (InstantiationException e) {
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			e.printStackTrace();
		}
		return null;
	}
	
	
	
	public static void main(String[] args) {
		Object[] obj1=new Object[]{1,13,"zhangsan"," "};
		Object[] obj2=new Object[]{1,13,"list"," "};
		Object[] obj3=new Object[]{1,13,"  "," "};
		List list=new ArrayList<>();
		list.add(obj1);
		list.add(obj2);
		list.add(obj3);
//		List userList = getListFromList(list, User1.class);
		User1 user2 = getObjectFromList(list, User1.class);
		System.out.println(user2.toString());
		System.out.println();
//		for (User1 user1 : userList) {
//			System.out.println(user1.toString());
//		}
		
		
		
//		User1 user1 = getObjectFromList(list, User1.class);
//		Method[] methods = User1.class.getMethods();
//		for (Method method : methods) {
//			System.out.println(method.getName());
//		}
		Field[] fields = User1.class.getDeclaredFields();
		
//		boolean flag=int instanceof(Integer);
//		Field.setAccessible(fields, true);
		for (int i = 0; i < fields.length; i++) {
//				System.out.println(fields[i].getName());
			
		}
	}
}


좋은 웹페이지 즐겨찾기