java 獲取對象中為null的字段實(shí)例代碼
下面一段簡單的代碼給大家分享java 獲取對象中為null的字段,具體代碼如下所述:
private static String[] getNullPropertyNames(Object source) { final BeanWrapper src = new BeanWrapperImpl(source); java.beans.PropertyDescriptor[] pds = src.getPropertyDescriptors(); Set<String> emptyNames = new HashSet<>(); for(java.beans.PropertyDescriptor pd : pds) { Object srcValue = src.getPropertyValue(pd.getName()); if (srcValue == null) emptyNames.add(pd.getName()); } String[] result = new String[emptyNames.size()]; return emptyNames.toArray(result); }
PS:將Java對象中屬性值為null獲取到
話不多說,直接貼代碼,這里可以進(jìn)行對json對象參數(shù)進(jìn)行校驗(yàn)的,找到不為空的參數(shù),或者對象所有屬性都不為空這樣的校驗(yàn),也許就方便多了呢。
public static List<String> getValue(Object object,List<String> list){ Field[] field = object.getClass().getDeclaredFields(); for(int j=0 ; j<field.length ; j++){ String name = field[j].getName(); name = name.substring(0,1).toUpperCase()+name.substring(1); String type = field[j].getGenericType().toString(); Method m; Object value; try { m = object.getClass().getMethod("get"+name); value = m.invoke(object); if(value == null || "".equals(value)){ list.add(name); } } catch (IllegalAccessException e) { e.printStackTrace(); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (SecurityException e) { e.printStackTrace(); } } return list; }
總結(jié)
以上所述是小編給大家介紹的java 獲取對象中為null的字段實(shí)例代碼,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!
相關(guān)文章
JAVA 格式化JSON數(shù)據(jù)并保存到j(luò)son文件中的實(shí)例
這篇文章主要介紹了JAVA 格式化JSON數(shù)據(jù)并保存到j(luò)son文件中的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-10-10淺析SpringMVC中的適配器HandlerAdapter
這篇文章主要介紹了SpringMVC中的適配器HandlerAdapter的相關(guān)資料,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01IDEA JAVA項(xiàng)目熱加載的實(shí)現(xiàn)步驟
熱加載可以使代碼修改后無須重啟服務(wù)器,就可以加載更改的代碼,本文主要介紹了IDEA JAVA項(xiàng)目熱加載的實(shí)現(xiàn)步驟,具有一定的參考價(jià)值,感興趣的可以了解一下2023-06-06Intellij IDEA如何去掉@Autowired 注入警告的方法
這篇文章主要介紹了Intellij IDEA如何去掉@Autowired 注入警告的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04淺析SpringBoot自動(dòng)裝配的實(shí)現(xiàn)
springboot開箱即用,其實(shí)實(shí)現(xiàn)了自動(dòng)裝配,本文重點(diǎn)給大家介紹SpringBoot是如何做到自動(dòng)裝配的,感興趣的朋友跟隨小編一起看看吧2022-02-02