我有以下代码:
PropertyDescriptor[] propertyDescriptors = Introspector.getBeanInfo(Mailingadresse.class).getPropertyDescriptors();
Map<String, PropertyDescriptor> m = Arrays
.stream(propertyDescriptors)
.filter(pd -> pd.getReadMethod() != null)
.collect(Collectors.toMap(pd -> pd.getName().toLowerCase(), Function::identity));
Eclipse显示
收集器类型中的toMap(Function,Function)方法不适用于参数 ((pd) - &gt; {},Function :: identity)
为什么会这样?
答案 0 :(得分:5)
Function.identity()
会返回一个功能界面(Function
),因此您不需要方法参考,您需要调用该方法:
PropertyDescriptor[] propertyDescriptors = Introspector.getBeanInfo(Mailingadresse.class).getPropertyDescriptors();
Map<String, PropertyDescriptor> m = Arrays
.stream(propertyDescriptors)
.filter(pd -> pd.getReadMethod() != null)
.collect(Collectors.toMap(pd -> pd.getName().toLowerCase(), Function.identity()));