欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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í)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • uploadify上傳及后臺文件合法性驗證的代碼解析

    uploadify上傳及后臺文件合法性驗證的代碼解析

    這篇文章主要介紹了uploadify上傳及后臺文件合法性驗證的代碼解析,整段代碼分為后臺上傳方法,文件合法性驗證類,前端上傳js,非常不錯具有參考借鑒價值,需要的朋友可以參考下
    2016-11-11
  • Java事務(wù)管理學(xué)習(xí)之JDBC詳解

    Java事務(wù)管理學(xué)習(xí)之JDBC詳解

    這篇文章主要介紹了Java事務(wù)管理學(xué)習(xí)之JDBC的相關(guān)資料,文中介紹的非常詳細,相信對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。
    2017-03-03
  • Spring Boot(二)之web綜合開發(fā)

    Spring Boot(二)之web綜合開發(fā)

    本篇文章為大家介紹spring boot的其它特性(有些未必是spring boot體系桟的功能,但是是spring特別推薦的一些開源技術(shù)本文也會介紹),對了這里只是一個大概的介紹,特別詳細的使用我們會在其它的文章中來展開說明
    2017-05-05
  • 關(guān)于@Autowired的使用及注意事項

    關(guān)于@Autowired的使用及注意事項

    這篇文章主要介紹了關(guān)于@Autowired的使用及注意事項,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Mybatis-plus:${ew.sqlselect}用法說明

    Mybatis-plus:${ew.sqlselect}用法說明

    這篇文章主要介紹了Mybatis-plus:${ew.sqlselect}用法說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • SpringBoot結(jié)合Redis配置工具類實現(xiàn)動態(tài)切換庫

    SpringBoot結(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)驗證碼校驗功能

    這篇文章主要介紹了利用Java工具類Hutool實現(xiàn)驗證碼校驗功能,利用Hutool實現(xiàn)驗證碼校驗,校驗的Servlet與今天的第一篇是一樣的,唯一就是驗證碼的生成是不一樣的,利用Hutool生成驗證碼更快捷.需要的朋友可以參考下
    2022-10-10
  • java jdk動態(tài)代理詳解

    java jdk動態(tài)代理詳解

    動態(tài)代理類的Class實例是怎么生成的呢,是通過ProxyGenerator類來生成動態(tài)代理類的class字節(jié)流,把它載入方法區(qū)
    2013-09-09
  • Java的PriorityBlockingQueue優(yōu)先級阻塞隊列代碼實例

    Java的PriorityBlockingQueue優(yōu)先級阻塞隊列代碼實例

    這篇文章主要介紹了Java的PriorityBlockingQueue優(yōu)先級阻塞隊列代碼實例,PriorityBlockingQueue顧名思義是帶有優(yōu)先級的阻塞隊列,為了實現(xiàn)按優(yōu)先級彈出數(shù)據(jù),存入其中的對象必須實現(xiàn)comparable接口自定義排序方法,需要的朋友可以參考下
    2023-12-12
  • Java枚舉與.net枚舉區(qū)別詳解

    Java枚舉與.net枚舉區(qū)別詳解

    這篇文章主要介紹了Java枚舉與.net枚舉區(qū)別詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-02-02

最新評論