ParameterizedType使用简单了解

本文介绍了如何在Java中使用ParameterizedType来处理范型类型。通过示例展示了如何利用ParameterizedType获取参数化类型的具体信息,以解决在模板方法中消除代码冗余的问题。讲解了范型的类型擦出概念,并提供了使用ParameterizedType获取容器内部类型的代码示例。
摘要由CSDN通过智能技术生成

之前项目中有一段逻辑:接收消息、解析、校验、业务处理。一开始代码显得冗余,然后改成模板方法。发现不同消息体解析成不同的类。

public abstract class Tests {

    public void handler(String message) {
        InfoA infoA = parse(message);
        try {
            process(infoA);
        } catch (Exception e) {
            exceptionHandler(message, e);
        }
    }

    private InfoA parse(String message) {
        // 省略
        return new InfoA();
    }

    abstract void process(InfoA infoA);

    abstract void exceptionHandler(String message, Exception e);
}

此时是个具体类,为了消除类型,改成范型如下:

public abstract class Tests<T> {

    public void handler(String message) {
        T infoA = parse(message);
        try {
            process(infoA);
        } catch (Exception e) {
            exceptionHandler(message, e);
        }
    }

    T parse(String message) {
        // XXX 怎么写?
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值