• java中的方法返回值使用泛型,实现灵活的返回值类型



    痛点:      使用Mybatis框架的时候,想封装一个底层JDBC控制器,用于提供和Mybatis交互的增删改查接口(公用的接口),但由于公用的查询方法可能是用户自定义的任意一个和表对应的java bean类型,所以要考虑怎么样给调用者返回正确的返回值类型,不需要调用者自己强转型的动作(例如:返回Object类型给调用者,那么调用者就需要拿到这个Object类型进行强转型为表对应的java bean类型)。


    解决方案:


    可以说java提供的泛型 T 是非常实用强大的一个特性,虽然说它是假的泛型(相对于C里面的泛型),我们可以考虑将方法的返回值设为泛型,因为泛型是在运行时才确定真正的类型,而并非在编译时。



    例子:

    1. 服务提供者 函数: 


    //通过<T>声明告诉JVM返回值定义一个泛型 T        

    //// 这里的T只是个占位符的效果,26个字母随便写哪个字母都可以,但一定要是和< >里面相同的字母,这里使用T

    public <T> T findList(String sqlID,Map<String,Object> params) {

    String statement = "com.mybatis.mapping.userMapper."+sqlID;//映射sql的标识字符串

    return (T) this.session.selectList(statement, params);
    }



    2. 服务调用者 函数:

    //这里接收的类型声明直接写真实的类型就可以,无需强制转换

    List<SubsHis> list = jdbc.findList("getSubsHisList", map);

  • 相关阅读:
    php curl getinfo
    php 实现树形结构
    E时代主机,其实做一个小虚拟主机还是不错的
    php 生成验证码
    php curl
    nodejs 操作mysql
    php ++a和a++
    nodejs上传图片并显示的例子
    json
    Rock,Paper,Scissors 水NOJ 1090
  • 原文地址:https://www.cnblogs.com/jpfss/p/9928580.html
Copyright © 2020-2023  润新知