直接在Java中没有一流的功能支持.两种选择:
>传入方法的名称,并使用反射来获取它
>创建一个包含单个成员的类型,如下所示:
public interface Function {
Out apply(In input);
}
然后你可以使用匿名内部类,如下所示:
joinOnMethod(", ", someList, new Function() {
@Override public String apply(T input) {
return input.getName();
}
});
当然,您可以将该函数提取为变量:
private static Function NAME_EXTRACTOR =
new Function() {
@Override public String apply(T input) {
return input.getName();
}
};
...
joinOnMethod(", ", someList, NAME_EXTRACTOR);