Java常用對象操作工具代碼實例
更新時間:2020年12月10日 10:06:16 作者:碼農(nóng)記事本
這篇文章主要介紹了Java常用對象操作工具代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
對象復(fù)制(反射法)
public static void copyProp(Object from, Object to, String... filterProp) { HashSet<String> filterSet = new HashSet<String>(Arrays.asList(filterProp)); Class<?> fromc = from.getClass(); Class<?> toc = to.getClass(); List<Field> to_fields = new ArrayList<Field>() ; while (toc != null) { to_fields.addAll(Arrays.asList(toc.getDeclaredFields())); toc = toc.getSuperclass(); } for (Field to_field : to_fields) { try{ if (filterSet.contains(to_field.getName())||"serialVersionUID".equals(to_field.getName())) { continue; } Field from_field = null; try{ from_field = fromc.getDeclaredField(to_field.getName()); }catch (Exception e){ continue; } from_field.setAccessible(true); Object value = from_field.get(from); if(value==null){ continue; } to_field.setAccessible(true); to_field.set(to, value); }catch (Exception e){ e.printStackTrace(); } } }
- 只copy有值對象
- 不需要copy的屬性用filterProp
- 是能過反射屬性注入方法實現(xiàn),所有屬性的名稱類型必須一樣
對象復(fù)制(fastJson轉(zhuǎn)換)
單個
public static <T> T bean2OtherBean(Object bean, Class<T> tClass){ return JSON.parseObject(JSON.toJSONString(bean),tClass); }
列表
public static <T> List<T> list2OtherList(List originList, Class<T> tClass){ List<T> list = new ArrayList<>(); if(!CollectionUtils.isEmpty(originList)){ for (Object obj : originList) { T t = bean2OtherBean(obj,tClass); list.add(t); } } return list; }
fastjson實現(xiàn),屬性不一樣必須用注解
對象轉(zhuǎn)MAP
public static <K,V> Map<K,V> bean2map(Object obj) throws IllegalAccessException { Map<String, Object> map = new HashMap<>(); Class<?> clazz = obj.getClass(); for (Field field : clazz.getDeclaredFields()) { field.setAccessible(true); String fieldName = field.getName(); Object value = field.get(obj); map.put(fieldName, value); } return (Map<K, V>) map; }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- IDEA 打開java文件對應(yīng)的class路徑的操作步驟
- Java8 使用 stream().sorted()對List集合進行排序的操作
- java jackson 將對象轉(zhuǎn)json時,忽略子對象的某個屬性操作
- java使用compareTo實現(xiàn)一個類的對象之間比較大小操作
- JAVA8 stream中三個參數(shù)的reduce方法對List進行分組統(tǒng)計操作
- JAVA對象和字節(jié)數(shù)組互轉(zhuǎn)操作
- 利用Java反射機制實現(xiàn)對象相同字段的復(fù)制操作
- 使用java反射將結(jié)果集封裝成為對象和對象集合操作
- Java8 Stream對兩個 List 遍歷匹配數(shù)據(jù)的優(yōu)化處理操作
- java中char對應(yīng)的ASCII碼的轉(zhuǎn)化操作
相關(guān)文章
Java事務(wù)管理學(xué)習(xí)之JDBC詳解
這篇文章主要介紹了Java事務(wù)管理學(xué)習(xí)之JDBC的相關(guān)資料,文中介紹的非常詳細,相信對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。2017-03-03Mybatis-plus:${ew.sqlselect}用法說明
這篇文章主要介紹了Mybatis-plus:${ew.sqlselect}用法說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-06-06SpringBoot結(jié)合Redis配置工具類實現(xiàn)動態(tài)切換庫
本文主要介紹了SpringBoot結(jié)合Redis配置工具類實現(xiàn)動態(tài)切換庫,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08利用Java工具類Hutool實現(xiàn)驗證碼校驗功能
這篇文章主要介紹了利用Java工具類Hutool實現(xiàn)驗證碼校驗功能,利用Hutool實現(xiàn)驗證碼校驗,校驗的Servlet與今天的第一篇是一樣的,唯一就是驗證碼的生成是不一樣的,利用Hutool生成驗證碼更快捷.需要的朋友可以參考下2022-10-10Java的PriorityBlockingQueue優(yōu)先級阻塞隊列代碼實例
這篇文章主要介紹了Java的PriorityBlockingQueue優(yōu)先級阻塞隊列代碼實例,PriorityBlockingQueue顧名思義是帶有優(yōu)先級的阻塞隊列,為了實現(xiàn)按優(yōu)先級彈出數(shù)據(jù),存入其中的對象必須實現(xiàn)comparable接口自定義排序方法,需要的朋友可以參考下2023-12-12