是否可以使用流和收集器生成HashMap? 我已经尝试过类似的东西:
myList.stream()
.map(Label::new)
.collect(Collectors.toMap(Function.identity(), PasswordField::new))
但是它显然不起作用,我尝试了其他解决方案,但是没有成功。 你有建议吗?
答案 0 :(得分:5)
PasswordField
类仅具有默认构造函数,这意味着PasswordField::new
将不起作用,因为它等效于(Label l) -> new PasswordField(l)
。相反,值映射器应该为(Label l) -> new PasswordField()
或简单地为l -> new PasswordField()
;
答案 1 :(得分:1)
正如Aomine正确提到的,PasswordField具有默认的构造函数,因此,代码中提到的PasswordField::new
将不起作用。请改用l -> new PasswordField()
:
myList.stream()
.map(Label::new)
.collect(Collectors.toMap(Function.identity(), l -> new PasswordField()));