• 通过反射,对javabean属性进行过滤操作


    /**
    	 * 根据属性名获取属性值
    	 * @param fieldName		属性名
    	 * @param o				传入对象
    	 * @return
    	 */
    	private Object getFieldValueByName(String fieldName, Object o) {
     		try {
    			String firstLetter = fieldName.substring(0, 1).toUpperCase();
    			String getter = "get" + firstLetter + fieldName.substring(1);
    			Method method = o.getClass().getMethod(getter, new Class[] {});
    			Class c= method.getReturnType();
    			if(!String.class.isAssignableFrom(c)){
    				return null;
    			}
    			Object value = method.invoke(o, new Object[] {});
    			return value;
    		} catch (Exception e) {
    			e.printStackTrace();
    			logger.error(e.getMessage(), e);
    			return null;
    		}
    	}
    	
    	/**
    	 * 获取防止注入新的对象
    	 * @param o					传入对象
    	 * @return
    	 */
    	public Object getRightParameterObject(Object o){
    		try{
    			String[] strs=getFiledName(o);//属性名数组
    			for(String s:strs){
    				Object obj=getFieldValueByName(s, o);//属性值
    				if(obj == null){
    					continue;
    				}
    				String firstLetter = s.substring(0, 1).toUpperCase();
    				String getter = "set" + firstLetter + s.substring(1);
    				System.out.println(getter);
    				Method method = o.getClass().getMethod(getter, String.class);
    				method.invoke(o,StringUtil.getWhereNewValue(obj.toString()));//这个地方对属性值进行操作,对属性值过滤什么的
    				//}
    			}
    		} catch(Exception e){
    			logger.error(e.getMessage(), e);
    			return null;
    		}finally {
    			
    		}
    		return o;
    	}
    	
    	
    	/**
    	 * 获取对象的所有属性值,返回一个对象数组
    	 * @param o					传入对象
    	 */
    	private Object[] getFiledValues(Object o) {
    		String[] fieldNames = this.getFiledName(o);
    		Object[] value = new Object[fieldNames.length];
    		for (int i = 0; i < fieldNames.length; i++) {
    			value[i] = this.getFieldValueByName(fieldNames[i], o);
    		}
    		return value;
    	}
        
    	
    	/**
    	 * 获取属性名数组
    	 * @param o					传入对象
    	 */
    	private String[] getFiledName(Object o) {
    		Field[] fields = o.getClass().getDeclaredFields();
    		String[] fieldNames = new String[fields.length];
    		for (int i = 0; i < fields.length; i++) {
    			//System.out.println(fields[i].getType());
    			fieldNames[i] = fields[i].getName();
    		}
    		return fieldNames;
    	}
    

      

  • 相关阅读:
    CMU Database Systems
    Calcite分析
    CMU Database Systems
    CMU Advanced DB System
    笔记
    MyBatis Generator中文文档
    Run Test Case on Spark
    Flex报错Error #2048: 安全沙箱冲突
    看看这个超级有用的一种类型——匿名类型
    Java实战_手把手编写记事本
  • 原文地址:https://www.cnblogs.com/ghsy/p/7641952.html
Copyright © 2020-2023  润新知