list,map,obj,bean 最强互转

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.util.HashMap;
import java.util.Map;

  


/**
     * Map转String
     *
     * @param map
     * @return
     */
    public String  mapToJsonStr(Map<String,Object> map) {
        return   new Gson().toJson(map);
    }



//obj 转 String
 return   new Gson().toJson(obj);

// Object类型的json转换为map
				String str = GsonFactory.getGson().toJson(response.getResponseData());
				Gson gson = new Gson();
				Map<String, Object> resMap = gson.fromJson(str, new TypeToken<Map<String, Object>>() {
				}.getType());


    /**
     * 任意类型转map
     *
     * @param obj 任意类型的bean
     * @return map
     */
    public Map<String, Object> beanToMap(People obj) {

        //bean转map
        Map<String, Object> resMap = new Gson().fromJson(new Gson().toJson(obj), new TypeToken<Map<String, Object>>() {
        }.getType());

        resMap.forEach((k, v) -> {
            System.out.println("key==" + k + ",value==" + v);
        });
        return resMap;
    }

package com.mapdemo;

import com.LamdaDemo.People;
import com.alibaba.fastjson.JSON;
import com.google.gson.Gson;
import com.google.gson.JsonSyntaxException;
import com.google.gson.reflect.TypeToken;

import java.util.Map;

public class MapToBean {

    public static void main(String[] args) {
        People people = new People();
        people.setAge(18);
        people.setName("张三");
        people.setSex(0);
        people.setStuNum(10);

        MapToBean mapTo = new MapToBean();
        Map<String, Object> map = mapTo.beanToMap(people);

        People p = MapToBean.fromJson(new Gson().toJson(map), People.class);
        System.out.println(JSON.toJSONString(p));


    }


    /**
     * 任意类型转map
     *
     * @param obj 任意类型的bean
     * @return map
     */
    public Map<String, Object> beanToMap(People obj) {

        //bean转map
        Map<String, Object> resMap = new Gson().fromJson(new Gson().toJson(obj), new TypeToken<Map<String, Object>>() {
        }.getType());

        resMap.forEach((k, v) -> {
            System.out.println("key==" + k + ",value==" + v);
        });
        return resMap;
    }


    /**
     * json转对象 !!!!
     * <p>
     * 传入什么类型 ,就返回什么类型T
     * 转为对象,list,map都可以
     * @param json     字符串(通过 new Gson().toJson(obj) 返回 json)
     * @param classOfT 对象类型
     * @return 对象
     */
    public static <T> T fromJson(String json, Class<T> classOfT) throws JsonSyntaxException {
        return new Gson().fromJson(json, classOfT);
    }

  /**
     * @param obj  转 T
     * @param classOfT 对象类型
     * @return 对象
     */
    public static <T> T objToT(Object obj, Class<T> classOfT) throws JsonSyntaxException {
        return new Gson().fromJson(new Gson().toJson(obj), classOfT);
    }
}

//obj转为list<指定的对象>  
Object obj = commonResponse.getData();   
String dataJson = GsonUtil.toJson(obj);
            ArrayList<ProvinceDto> list = new Gson().fromJson(dataJson, new TypeToken<List<ProvinceDto>>() {
            }.getType());

HashMap类里面的 常量为什么外部拿不到?

 

static final int DEFAULT_INITIAL_CAPACITY = 1 << 4;    2的4次幂

1.这个常量没有写访问权限修饰符,也就是本类和本包访问权限.外部的 HashMap对象不行,即使继承HashMap也拿不到.

2.HashMap中有多个内部类.我们知道,内部类是可以访问所在外部类的全部变量和方法的(包括private). 也实现了封装的目的. 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值