首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何删除方法的输入参数class <T >,每次调用都会很方便

如何删除方法的输入参数class <T >,每次调用都会很方便
EN

Stack Overflow用户
提问于 2020-11-02 18:07:47
回答 1查看 43关注 0票数 1
代码语言:javascript
复制
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.samples.ar.entity.User;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Demo<T> {
    private T t;

    public <T> List<T> getOnet(List<Map<String, Object>> list, Class<T> tClass) {
        //Null pointer exception in this way
        //But this way is convenient, how to realize
        //return (List<T>) JSONArray.parseArray(JSON.toJSONString(list), t.getClass());
        return JSONArray.parseArray(JSON.toJSONString(list), tClass);
    }

    public static void main(String[] args) {
        User user = new User();
        Class<? extends User> aClass = user.getClass();
        List<Map<String, Object>> list = new ArrayList<>();
        for (long i = 0; i < 10; i++) {
            Map<String, Object> map = new HashMap<>();
            map.put("id", i);
            list.add(map);
        }
        List<User> users = new Demo<User>().getOnet(list, User.class);
        System.out.println(users);
    }
}

环境:Java 8,IntelliJ IDEA

如果该方法没有类<T>输入参数,则每次调用都很方便。类似于MyBatis plus的实现。

我担心图片不会被显示,所以我写出了这个方法

代码语言:javascript
复制
com.baomidou.mybatisplus.core.mapper.BaseMapper

T selectById(Serializable id);

Mybatis-plus BaseMapper

EN

回答 1

Stack Overflow用户

发布于 2020-11-02 18:25:28

如果方法没有class 输入参数,每次调用都很方便

当时不能使用泛型。请记住,您希望将JSON序列化为对象,因此需要通过Class<T> tClass传递一种类型的对象。然而,整个事情可以被简化:

导致Demo.的

  • Demo<T>中删除泛型类型

删除未使用的类型private T t;.的

  • 使用显式泛型类型定义方法getOnet

公用列表getOnet(List>列表,类tClass) { return JSONArray.parseArray(JSON.toJSONString( list ),tClass);}

只要泛型类型被推断出来,这个方法的用法就会变得很简单。

代码语言:javascript
复制
List<User> users = new Main().getOnet(list, User.class);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64643443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档