서로 다른 실체 클래스와 같은 속성 부여 대상의 값을 다른 대상에 복제하는 도구 클래스

1752 단어 java 백엔드
방법:
// , get,set , , true 
    public static void attrCopy(Object objFrom,Object objTo,String key,Boolean... args){     	
        Class clsFrom=null;
        Class clsTo=null;
		try {
			clsFrom = Class.forName(objFrom.getClass().getName());
			clsTo = Class.forName(objTo.getClass().getName()); 
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}           
        //   
        Field[] objFromFields = clsFrom.getDeclaredFields();  
        Field[] objToFields = clsTo.getDeclaredFields(); 
        boolean ignoreEmpty=false;
        // 
        for (Field formField : objFromFields) {  
        	// id 
            if(formField.getName().equals(key))  
                continue;  
            Object value = invokeGetMethod(objFrom ,formField.getName());
            // null 
            if (value!=null) {            	
            	for (Boolean bl : args) {
					if (bl) {
						ignoreEmpty=true;// 
						break;
					}
				}
            	// 
            	if (ignoreEmpty) {
            		if (value instanceof String) {
    					String string=(String)value;
    					if (string.trim().length() == 0) {
    						continue;
    					}
    				}
				}            	
            	for (Field toField : objToFields) { 
            		// 
                    if(formField.getName().equals(toField.getName())){  
                        Object[] obj = new Object[1];  
                        obj[0] = value;  
                        invokeSetMethod(objTo, toField.getName(), obj);  
                        break;
                    }  
                }  
			}            
        }            
    }  

호출 방법:
    object1;//복사된 객체
    object2;//붙여넣은 객체
attrCopy(object1, object2, "키 Id");

좋은 웹페이지 즐겨찾기