外部类中带有静态函数的Java 8映射
我在一个外部类中带有静态函数的Java 8映射,java,Java,我在一个Utils类中有一个静态函数,它将Bean1映射到Bean2 public class Utils { public static Bean2 bean1ToBean2(Bean1 bean1) { Bean2 bean2 = new Bean2(...); return bean2; } } 现在我需要使用它,但语法有问题: beans2 = beans1.stream().map(this::Utils.bean1ToBean2).co
Utils
类中有一个静态函数,它将Bean1映射到Bean2
public class Utils {
public static Bean2 bean1ToBean2(Bean1 bean1) {
Bean2 bean2 = new Bean2(...);
return bean2;
}
}
现在我需要使用它,但语法有问题:
beans2 = beans1.stream().map(this::Utils.bean1ToBean2).collect(Collectors.toList());
有个语法错误
The target type of this expression must be a functional interface.
为什么不呢
map(Utils::bean1ToBean2)
或者,如果您在同一个班级,只需:
map(this::bean1ToBean2)
将
this::Utils.bean1ToBean2
更改为Utils::bean1ToBean2
在您的上下文中,map
需要一个函数
,而方法引用Utils::bean1ToBean2
正好满足该函数接口。