国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java中實(shí)體與Map的相互轉(zhuǎn)換

這篇具有很好參考價(jià)值的文章主要介紹了Java中實(shí)體與Map的相互轉(zhuǎn)換。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一、在Java中,可以通過以下方法將實(shí)體類轉(zhuǎn)換為Map:

  1. 利用Java反射機(jī)制:
public static Map<String, Object> objectToMap(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;
}
  1. 利用Java 8 Stream API:
public static Map<String, Object> objectToMap(Object obj) {
    return Arrays.stream(obj.getClass().getDeclaredFields())
            .peek(field -> field.setAccessible(true))
            .collect(Collectors.toMap(Field::getName, field -> {
                try {
                    return field.get(obj);
                } catch (IllegalAccessException e) {
                    return null;
                }
            }));
}

以上兩種方法都可以將實(shí)體類轉(zhuǎn)換為Map。需要注意的是,這些方法僅會(huì)將實(shí)體類中的屬性轉(zhuǎn)換為Map中的鍵值對(duì),不會(huì)包含方法、構(gòu)造器、父類屬性等其他部分。

二、要將map轉(zhuǎn)換為實(shí)體類對(duì)象,可以使用以下方法:

  1. 使用Java反射機(jī)制:
import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.Map;

public class MapToEntity {
    public static void main(String[] args) throws IllegalAccessException {
        Map<String, Object> map = new HashMap<>();
        map.put("name", "張三");
        map.put("age", 25);

        User user = mapToEntity(map, User.class);
        System.out.println(user);
    }

    public static <T> T mapToEntity(Map<String, Object> map, Class<T> clazz) {
        T obj = null;
        try {
            obj = clazz.newInstance();
            for (Map.Entry<String, Object> entry : map.entrySet()) {
                String key = entry.getKey();
                Object value = entry.getValue();
                Field field = clazz.getDeclaredField(key);
                field.setAccessible(true);
                field.set(obj, value);
            }
        } catch (InstantiationException | IllegalAccessException | NoSuchFieldException e) {
            e.printStackTrace();
        }
        return obj;
    }
}

class User {
    private String name;
    private int age;

    // 省略getter和setter方法
}

  1. 使用第三方庫(kù):例如Jackson、Gson等。這里以Jackson為例:
    首先,添加Jackson依賴到項(xiàng)目中(以Maven為例):
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.12.5</version>
</dependency>

然后,創(chuàng)建實(shí)體類User:

public class User {
    private String name;
    private int age;

    // 省略getter和setter方法
}

接下來,使用Jackson將map轉(zhuǎn)換為User對(duì)象:文章來源地址http://www.zghlxwxcb.cn/news/detail-753303.html

import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.HashMap;
import java.util.Map;

public class MapToEntity {
    public static void main(String[] args) throws Exception {
        Map<String, Object> map = new HashMap<>();
        map.put("name", "張三");
        map.put("age", 25);

        ObjectMapper objectMapper = new ObjectMapper();
        User user = objectMapper.convertValue(map, User.class);
        System.out.println(user);
    }
}

到了這里,關(guān)于Java中實(shí)體與Map的相互轉(zhuǎn)換的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Java中 實(shí)體類與Map互轉(zhuǎn)

    1、map轉(zhuǎn)對(duì)象; 主要思路,將map中的key-value取出來,然后和給定的對(duì)象去匹配 2、對(duì)象轉(zhuǎn)map, 思路,同上述的分析類似,這不過這里需要反過來,給定一個(gè)待轉(zhuǎn)化的實(shí)體類,通過反射,將實(shí)體類中的字段名稱和字段值獲取到,然后一一設(shè)置到map的key-value中,下面看代碼,

    2024年02月12日
    瀏覽(17)
  • Java實(shí)體和JSON之間的相互轉(zhuǎn)換

    Java實(shí)體和JSON之間的相互轉(zhuǎn)換

    代碼如下: 初始化并輸出一下: 注意,如果沒有使用“@Data”注解,一定要加上get和set方法,不然轉(zhuǎn)化之后的Json是空的! 主要是對(duì)SerializerFeature枚舉類的使用,詳細(xì)的可以看這個(gè)博客: https://blog.csdn.net/xiang__liu/article/details/81570923 或者看這里: https://www.javadoc.io/static/com.ali

    2024年02月12日
    瀏覽(29)
  • Object & Map 的相互轉(zhuǎn)換

    Object & Map 的相互轉(zhuǎn)換

    學(xué)生業(yè)務(wù)對(duì)象定義:Student 一般情況下我們引入MVC,MVC里面幫我們引入了 Jackso 依賴 最終的依賴:

    2024年02月14日
    瀏覽(10)
  • java如何將對(duì)象轉(zhuǎn)換為map?如何將map轉(zhuǎn)換為對(duì)象?

    目錄 1、使用 BeanUtils 2、ObjectMapper 3、Gson 4、Jackson 5、手動(dòng)進(jìn)行轉(zhuǎn)換 1、使用 BeanUtils ????????BeanUtils 是 Apache Commons BeanUtils 項(xiàng)目提供的一個(gè)常用的工具類庫(kù),該工具類庫(kù)提供了一系列很有用的方法,包括將 Bean 轉(zhuǎn)換成 Map 對(duì)象、將 Map 對(duì)象轉(zhuǎn)換成 Bean 以及獲取 Bean 的屬性值等

    2024年02月07日
    瀏覽(18)
  • Java中Map與對(duì)象之間互相轉(zhuǎn)換

    Java中Map與對(duì)象之間互相轉(zhuǎn)換

    ????????Map在日常開發(fā)應(yīng)用中的頻率很高,最常用的實(shí)現(xiàn)類是HashMap和有序的TreeMap。在企業(yè)級(jí)應(yīng)用中,更多的應(yīng)用場(chǎng)景是關(guān)聯(lián)JSON和Object使用,Map可以用于JSON傳參、接收J(rèn)SON參數(shù),返回JSON數(shù)據(jù)等,也可以用于對(duì)象處理,開發(fā)者可以省一些簡(jiǎn)單實(shí)體類,用map來替代。 ??????

    2024年02月04日
    瀏覽(22)
  • Java調(diào)用scala中map轉(zhuǎn)換問題處理

    Java調(diào)用scala中map轉(zhuǎn)換問題處理

    網(wǎng)上代碼 把Javamap轉(zhuǎn)為scala的map代碼 我自身是用scala2.11.8, jdk8, 同樣代碼在本機(jī)報(bào)錯(cuò)如下: toSeq()方法就一個(gè)方法還會(huì)不明確也是奇葩, 遂去翻源碼,然后發(fā)現(xiàn)seq和其他集和對(duì)象關(guān)系 ?那么算了不去轉(zhuǎn)到seq了, 我轉(zhuǎn)到他的子類總改明確吧, 遂把代碼改成以下兩種方式分別實(shí)驗(yàn): ?另外

    2024年02月11日
    瀏覽(18)
  • java中對(duì)象和Map互相轉(zhuǎn)換的幾種方式

    在Java中,將對(duì)象和Map相互轉(zhuǎn)換是常見的操作,可以通過不同的方式實(shí)現(xiàn)這種轉(zhuǎn)換。以下是幾種常見的方法以及示例說明: 1. 使用Hutool工具類 Hutool是一個(gè)優(yōu)秀的Java工具包,提供了豐富的工具方法,其中就包括對(duì)象和Map之間轉(zhuǎn)換的工具方法。 示例: Hutool的 BeanUtil 提供了 bean

    2024年02月03日
    瀏覽(21)
  • Java 把 Map 的值(Value)轉(zhuǎn)換為 Array, List 或 Set

    Java 把 Map 的值(Value)轉(zhuǎn)換為 Array, List 或 Set

    在這篇短文中,我們將會(huì)展示如何把 Map 中的值取出來,轉(zhuǎn)換為一個(gè) Array, 、 List 或者一個(gè) Set 。 當(dāng)然,你可以使用 Java JDK 來進(jìn)行轉(zhuǎn)換,你也可以使用 Guava 來進(jìn)行轉(zhuǎn)換。 首先,讓我們來看看,如何使用原生的 Java JDK把一個(gè) Map 的值換行為 Array。 在上面的代碼中,我們使用了

    2023年04月23日
    瀏覽(33)
  • Java將一個(gè)list<T>指定key轉(zhuǎn)換成Map<list>

    經(jīng)常有這種,一個(gè)數(shù)據(jù)庫(kù)里有多個(gè)字段,但是數(shù)據(jù)庫(kù)只能返回一個(gè)list,你group分組了也沒用。 然后你得到的是一個(gè)list,你想根據(jù)type分組,大概是這樣 [ {\\\"name\\\":\\\"牛奶\\\",\\\"desc\\\":\\\"吃了有力氣\\\",\\\"type\\\":\\\"食物\\\"}, {\\\"name\\\":\\\"貓耳朵\\\",\\\"desc\\\":\\\"富含豐富油脂\\\",\\\"type\\\":\\\"食物\\\"}, {\\\"name\\\":\\\"電腦\\\",\\\"desc\\\":\\\"可以提升

    2024年01月24日
    瀏覽(16)
  • Java Stream流 List< T >轉(zhuǎn)換Map方法匯總合集(大概是最全吧)

    Java Stream流 List< T >轉(zhuǎn)換Map方法匯總合集(大概是最全吧)

    本文主要介紹 Java 中利用 Stream 流將 List T 類型數(shù)據(jù)轉(zhuǎn)換成 Map 類型的幾種方法整合匯總,其中包含了toMap()、groupingBy()、partitioningBy()等方法的使用,建議收藏方便查閱,如果有幫助到您,不要吝嗇點(diǎn)贊、收藏! tips:本文沒有推薦使用三方類庫(kù)提供的 List 轉(zhuǎn) Map 工具類方法,因

    2024年02月04日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包