登录
首页 >  文章 >  java教程

如何用映射容纳不同类、不同返回值类型的 getter 方法引用?

时间:2024-12-11 09:34:06 468浏览 收藏

目前golang学习网上已经有很多关于文章的文章了,自己在初次阅读这些文章中,也见识到了很多学习思路;那么本文《如何用映射容纳不同类、不同返回值类型的 getter 方法引用?》,也希望能帮助到大家,如果阅读完后真的对你学习文章有帮助,欢迎动动手指,评论留言并分享~

如何用映射容纳不同类、不同返回值类型的 getter 方法引用?

如何用映射容纳方法引用

声明一个映射来存储方法引用,这些方法引用是类的getter方法,但属于不同的类,具有不同的返回值类型,如User::getUsername、Group::getName、Post::getId。

函数式接口可以接收单个方法引用,但其泛型参数因方法签名而异。声明容纳这些函数式接口的映射时,难以指定通用的泛型参数。

一位开发者提供了使用IntelliJ IDEA代码提示的解决方案。在一个新行输入Arrays.asList(getUsername, getId)后,输入.var并回车。IDEA会提示列表类型和变量名,类型为List<? extends Function<?, ?>>。

映射声明类似,但类型声明进行了简化:Map<String, Function<?, ?>>。存入方法引用时,需进行类型转换,例如存入Group::getId:map.put("id", (Function<Group, Long>) Group::getId)。

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《如何用映射容纳不同类、不同返回值类型的 getter 方法引用?》文章吧,也可关注golang学习网公众号了解相关技术文章。

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>