反射による初期化後のオブジェクトのすべての属性が空であるか否かの判定&オブジェクト指定属性が空であるか否かの判定

8584 ワード

初期化されたオブジェクトがオブジェクトのみを通過できない場合!=nullは、空かどうかを判断します.空かどうかを判断する方法は2つあると思います.1つは、属性が空かどうかを判断することです.2つは、必須項目が空かどうかを判断することです.次に、詳細コードをリストします.
package   ;

import java.lang.reflect.Field;

import com.sun.istack.internal.Nullable;

public class ObjectUtils {
     
	//    ,        
	public static boolean allFieldsIsEmpty(Object obj) {
     
		if(null == obj) {
     
			return true;
		}
		try{
     
			//getDeclaredFields              ,       
			for(Field f:obj.getClass().getDeclaredFields()) {
     
				//        (    )
		        f.setAccessible(true);
		        //         ,            ,     ,      , 
		        //if (!ObjectUtils.isEmpty(f.get(obj)) && f.getName()!="serialVersionUID") {
     
		        if (!ObjectUtils.isEmpty(f.get(obj))) {
     
					//             
		        	return false;
				}
		     }
			}catch(Exception e) {
     
				e.printStackTrace();
			}
		return true;
	}
	//             index    
	public static boolean fieldsIsEmpty(Object obj,int index) {
     
		if(null == obj) {
     
			return true;
		}
		try{
     
			Field field = obj.getClass().getDeclaredFields()[index];
			field.setAccessible(true);
		        if (!ObjectUtils.isEmpty(field.get(obj))) {
     
					//             
		        	return false;
				}	     
			}catch(Exception e) {
     
				e.printStackTrace();
			}
		return true;
		}
	//org.springframework.util.StringUtils     (@Nullable        )
	public static boolean isEmpty(@Nullable Object obj) {
     
		return (obj == null || "".equals(obj));
	}
}