◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
如何用映射(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);
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。