java 获取方法返回值list中的类型

本文介绍了一种在周末开发的小功能,该功能允许部分指定请求绕过mybatis,通过其他HTTP数据服务接口进行处理。文章详细展示了如何通过判断DAO接口方法的返回值来决定是否调用特定的服务接口,并提供了具体的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

周末写了个小功能,有部分指定请求不走mybatis, 而是走其它http数据服务接口,需要判断dao接口方法中的返回值,来进行赋值.

public interface LanguageDao {

    /**
     * 查询当前配置的语言
     * @return
     */
    List<LngLanguage> queryLanguageList();
}

代码如下:

public static final ObjectMapper mapper = new ObjectMapper();

public List<?> ArrayListConverter(Method method, String result, Class returnTypeBean) throws Exception{
        Type type = method.getGenericReturnType();
        //以下方法就是获取list类的泛形类数组的方法
        Class<T> entityClass = (Class<T>)((ParameterizedType) type).getActualTypeArguments()[0];
        //如果list集合中不属于自定义类,则单独处理
        if(entityClass.getClassLoader() == null){
            return JSONArray.fromObject(result);
        }
        return mapper.readValue(result, getCollectionType(ArrayList.class, entityClass));
    }

private JavaType getCollectionType(Class<?> collectionClass, Class<?>... elementClasses) {
        return mapper.getTypeFactory().constructParametricType(collectionClass, elementClasses);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值