从红宝石的角度来看,我正在研究一些功能性的 java
在红宝石中你可以做这样的事情
mapped_array = [1,2,3].map(&:to_s)
它通过在每个对象上调用 to_s 成员函数来评估转换(映射)数组
mapped_array = []
[1,2,3].each { |e| mapped_array << e.to_s }
我想在 Java 中做类似的事情,即通过在每个对象上调用 _2() 方法来转换 Product-3 (fj.P3) 的列表
List<P2<Integer, Double>> aListOfP2;
final List<Double> costs = transform(aListOfP2, Converters.<Integer, Double>second());
所以我不得不在某个地方定义一个方法
public static final <A,B> Function<P2<A,B>,B> second() {
return new Function<P2<A, B>, B>() {
public B apply(final P2<A, B> from) {
return from._2();
}
};
};
但是如果我想获得第一个元素,那是另一种方法......如果我想从 P3 中获得第二个元素,那是另一种方法。
问题是......如果没有像 ruby 这样的机制,那么最通用的方法是什么?