dje*_*lin 0 java functional-programming guava
通常Guava Lists.transform看起来像这样:
Lists.transform(new ArrayList<String>("1", "2", "3"),
new Function<String, Integer>() {
@Override
Integer apply(String str) {
return Integer.valueOf(str);
}
});
Run Code Online (Sandbox Code Playgroud)
一个Converter<A, B>定义doForward,并doBackward从去的方法A来B和B到A分别.逻辑上它是一对Function.看起来没有任何简单的方法
Converter到Function描述它的那对,或者Converter并向方法说出方向Lists.这些是不兼容的还是除了手动编写胶水代码之外还有其他方法吗?
手动胶水代码看起来像
final Converter<A, B> myConverter = /*...*/;
Lists.transform(myList, new Function<A, B>() {
@Override
B apply(A a) {
return myConverter.doForward(a);
}
});
Run Code Online (Sandbox Code Playgroud)
番石榴的Converter工具Function.所以就这么做
Lists.transform(myList, myConverter)
Run Code Online (Sandbox Code Playgroud)
要么
Lists.transform(myList, myConverter.reverse())
Run Code Online (Sandbox Code Playgroud)