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

这篇具有很好参考价值的文章主要介绍了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);
 文章来源地址https://www.toymoban.com/news/detail-459732.html

到了这里,关于java中的方法返回值使用泛型,实现灵活的返回值类型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • java~用泛型来定义异常类型,避免方法调用时throws异常

    我们一般在底层写方法时,如果方法显示throws异常,那么在调用时,也需要将这个异常throws出来,例如 调用时 如果调用时不显示throws出异常,编译器会报出错误,如下图 调用方法时,不需要再throws Ex了,这种对调用者更友好,如图 在第一个方法中,使用了泛型类型 来定义

    2024年02月21日
    浏览(31)
  • 深入理解Java泛型:编写灵活而安全的代码

    1. 泛型的概念 泛型可以看作是参数化的类型,就像函数式编程中的高阶函数,它们可以接受多种类型的参数。在Java中,泛型主要用在类、接口和方法上。 2. 泛型的作用 类型安全 :泛型可以确保在编译时就能发现类型错误,而不是在运行时。 代码复用 :通过泛型,可以编写

    2024年04月14日
    浏览(39)
  • Java方法【返回类型】

    返回类型 定义方法在执行结束后 是否有返回结果 ,描述它的 数据类型 (只能有一个) 方法在执行结束后,有需要返回的数据,用数据类型  (基本或引用数据类型都可以)                1、如果 方法定义了 具体返回类型 ,那么就必须使用 return ,去返回数据 ; 2、当

    2024年02月04日
    浏览(23)
  • 深入理解Java泛型:灵活、安全、可重用的编程利器

    Java泛型是一项强大的编程特性,为程序员提供了一种灵活、类型安全、可重用的编码方式。通过泛型,我们能够编写更加通用、适应多种数据类型的代码,从而提高了代码的灵活性和可维护性。在这篇博客中,我们将深入探讨Java泛型的各个方面,并通过具体的例子来展示其

    2024年03月21日
    浏览(41)
  • Java实现方法接口入参同时包含文件、字段和对象等多种类型。HTTP请求返回415状态,Content type ‘application/octet-stream‘ not supported错误。

    方法一:对象不使用注解 使用Postman测试,直接将subject对象的字段填在key的位置 方法二:对象使用注解@RequestPart 使用Postman测试,将字段包装在subject对象里,使用Content type:application/json的内容类型 注:方法二在开发本地测试执行成功,但是在测试人员机子下不通过,执行报

    2024年02月12日
    浏览(32)
  • Scala中的类型检查和转换,以及泛型,scala泛型的协变和逆变

    说明 (1) obj.isInstanceOf[T]:判断 obj 是不是T 类型。 (2) obj.asInstanceOf[T]:将 obj 强转成 T 类型。 (3) classOf 获取对象的类名。 案例 1.说明 (1)枚举类:需要继承 Enumeration (2)应用类:需要继承App 2. 案例 1.说明 使用 type 可以定义新的数据数据类型名称,本质上就

    2024年02月10日
    浏览(30)
  • Java获取泛型类型信息

    根据使用泛型位置的不同可以分为:声明侧泛型、使用侧泛型。 声明侧的泛型信息被记录在Class文件的Constant pool中以Signature的形式保存。而使用侧的泛型信息并没有保存。 声明侧泛型 声明侧泛型包括: 泛型类,或泛型接口的声明 带有泛型参数的成员变量 带有泛型参数的方

    2024年02月09日
    浏览(30)
  • 【100个 Unity实用技能】☀️ | C#泛型集合常用方法,查找符合要求的第一个元素并返回

    老规矩,先介绍一下 Unity 的科普小知识: Unity 是 实时3D互动内容创作和运营平台 。 包括 游戏开发 、 美术 、 建筑 、 汽车设计 、 影视 在内的所有创作者,借助 Unity 将创意变成现实。 Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和

    2023年04月08日
    浏览(37)
  • 基于C#编程建立泛型Matrix数据类型及对应处理方法

            上一篇文档中描述了如何写一个VectorT类,本次在上一篇文档基础上,撰写本文,介绍如何书写一个泛型Matrix,可以应用于int、double、float等C#数值型的matrix。         本文所描述的MatrixT是一个泛型,具有不同数值类型Matrix矩阵构造、新增、删除、查询、更改、

    2024年02月02日
    浏览(30)
  • Java中泛型和Object类型 初级进阶教程(一)

    在学习的过程中,常常看到某个类或者接口等中使用 ListT, TestT,其中T的作用是什么呢? 1 在类中使用泛型 2 使用多个泛型 3 在类中使用泛型 4 在方法中使用泛型 5 限制泛型类型 6 通配符 (Wildcard) 总结:泛型和Object类型之间的区别 类型安全: 泛型 T : 泛型提供了编译时类型

    2024年02月01日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包