jsonobject如何赋值泛型对象?jsonobject赋值泛型对象

JSONObject只是一种数据结构,可以使用put方法给json对象添加元素。JSONObject可以很方便的转换成字符串,也可以很方便的把其他对象转换成JSONObject对象。那jsonobject如何赋值泛型对象?下面来我们就来给大家讲解一下。

首先大家要知道什么叫泛型?

泛型就是将类型由原来的具体类型参数化,此时类型也定义成参数形式,然后在使用传入具体的类型。

Java泛型的主要目的是可以建立具有类型安全的数据结构,如链表、散列表等数据结构,最重要的一个优点就是:在使用这些泛型类建立的数据结构时,不必进行强制类型转换,既不要求进行运行时类型更安全。JDK1.5编译器在泛型使用时,将运行时的类型检查提前到编译时执行,使代码更安全。总而言之,泛型的推出就是为了建立具有类型安全的数据结构。

泛型类声明:

可以使用“class 名称<泛型列表>”声明一个类,为了和普通类有所区别,这样声明的类称作泛型类。

class People

People是泛型类的名称,E是其中的泛型,并没有指定E是何种类型的数据,它可以是任何对象或者接口,但不能是基本的数据类型。同时不用字母E也可以,可使用任何一个合法的标识符。泛型声明时,”泛型列表“给出的泛型可以作为类的成员变量的类型、方法的类型以及局部变量的类型。

实例化泛型:

Classclazz = (Class)((ParameterizedType) new Entity()
        .getClass()
        .getGenericSuperclass())
    .getActualTypeArguments()[0];
T dto = clazz.newInstance();
泛型方法
/**
*
* @param clazz
* @param book
* @param sheetIndex
* @param
* @return
* @throws IllegalAccessException
* @throws InstantiationException
*/
public staticListtoEntity(Classclazz, Workbook book, int sheetIndex) throws IllegalAccessException, InstantiationException
{
    Listlist = new ArrayList < > (); // Classclazz = (Class) ((ParameterizedType) entity.getClass().getGenericSuperclass()).getActualTypeArguments()[0];
    T dto = clazz.newInstance();
    T dto2 = clazz.newInstance();
    Field[] fields = clazz.getDeclaredFields();
    MapfieldMap = new LinkedHashMap < > ();
    for (Field field: fields)
    {
        String mod = Modifier.toString(field.getModifiers());
        System.out.println("mod = " + mod);
        // 跳过静态属性
        if (mod.indexOf("static") != -1)
        {
            continue;
        }
        // 取得注解的设置的属性值
        Description setField = field.getAnnotation(Description.class);
        if (setField != null)
        {
            String fieldName = setField.key();
            String fieldType = setField.value();
            // 必须,不然赋值会出现异常
            field.setAccessible(true);
            fieldMap.put(fieldType, field);
            System.out.println("注解的属性 fieldName = " + fieldName);
            System.out.println("注解的属性 fieldType = " + fieldType);
        }
    }
    int num = 0;
    for (String key: fieldMap.keySet())
    {
        num++;
        fieldMap.get(key)
            .set(dto, "dto1:" + key + num);
        fieldMap.get(key)
            .set(dto2, "dto2:" + key + num);
    }
    list.add(dto);
    return list;
}

JsonObject 其实就是常说的json,是一种重要的数据传输对象,因此对于 JsonObject 的使用方法还是需要掌握好!最后大家如果想要了解更多json相关知识,敬请关注奇Q工具网。

推荐阅读:

Java字符串截取后四位方法是什么?Java字符串如何查找?

java函数式编程的好处是什么?java函数式编程示例

git代码怎么回退?git代码回退方法