泛型用法初级了解

本文详细介绍了Java中的泛型使用,包括在方法上和类上的应用。通过示例展示了如何使用泛型来实现灵活的数据类型处理,如文件到Java Bean的转换,以及泛型方法的定义和调用。泛型允许我们限制参数类型,并返回指定类型的值,提高了代码的复用性和安全性。
摘要由CSDN通过智能技术生成

<T> T表示返回值是一个泛型,传递啥,就返回啥类型的数据,而单独的T就是表示限制你传递的参数类型,这个案例中,通过一个泛型的返回方式,获取每一个集合中的第一个数据, 通过返回值<T> T 和T的两种方法实现

用法

1、写在方法上

个人理解:不能直接在参数或者返回值写类型T,这样需要具体实际存在的类型;

但是可以加<T> 表示T是个泛型

    /**
     *
     * 这个<T> T 可以传入任何类型的List
     *      * 参数T
     *      *     第一个 表示是泛型
     *      *     第二个 表示返回的是T类型的数据
     *      *     第三个 限制参数类型为T
     * @param file json文件路径:"mockData/deviceData.json"
     * @param c
     * @param <T>
     * @return
     */
    public <T> T fileToJavaBean(String file, Class<T> c) {
        if (StringUtils.isEmpty(file)) {
            return null;
        }
        BufferedReader br = null;
        StringBuilder result = new StringBuilder();
        try {
            InputStream is = JsonUtil.class.getClassLoader().getResourceAsStream(file);
            br = new BufferedReader(new InputStreamReader(is));
            String ret = "";
            while ((ret = br.readLine()) != null)
            {
                if (ret != null && !ret.trim().equals(""))
                {
                    result.append(new String(ret.getBytes("ISO-8859-1"), "utf-8"));
                }
            }
        } catch (UnsupportedEncodingException e) {

        } catch (IOException e) {

        } catch (Exception e) {

        } finally {
            if (br != null) {
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return JSON.parseObject(result.toString(), c);
    }
}
public <T> void del(T obj) {

    }
    public <T> boolean del(T obj) {
        return false;
    }
public <T extends ObjectMapper> T build() {}

<T extends T2> 指传的参数或者返回的参数为T2或者T2的子类型。

2、定义在类上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值