如何使用 Map 存储不同方法引用?

如何使用 map 存储不同方法引用?

如何用映射(map)储存不同方法引用的方法

在大型项目中,我们经常需要将不同类的 getter 方法组织起来,以方便访问对象属性。这些方法具有不同的返回值类型,因此我们不能使用具有相同泛型类型参数的方法引用。

解决方案

为了解决此问题,我们可以使用泛型来创建映射(map):

map<string, function<?, ?>> map = new hashmap<>();

对于每个方法引用,我们需要先将其转换为通用类型的 function 对象。例如,要存储 group::getid,我们可以这样写:

map.put("id", (function<group, long>) group::getid);

当我们想要使用这些方法引用时,我们可以通过键来从映射中获取它们。例如,以获取 group 的 id 为例:

long id = map.get("id").apply(group);

以上就是如何使用 Map 存储不同方法引用?的详细内容,更多请关注其它相关文章!