使用Java 8从List <string>到Map <label,passwordfield =“”>

时间:2018-07-24 21:59:36

标签: javafx arraylist java-8

是否可以使用流和收集器生成HashMap? 我已经尝试过类似的东西:

 myList.stream()
.map(Label::new)
.collect(Collectors.toMap(Function.identity(), PasswordField::new))

但是它显然不起作用,我尝试了其他解决方案,但是没有成功。 你有建议吗?

2 个答案:

答案 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()));