- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我需要创建方法transformer
它可以改变对象的类型。例如:我有List<Integer> sampl
e 更改为 List<String> sample.
如何编写方法来做到这一点?我真的不明白,因为我知道apache已经有rhi方法 -> CollectionUtils.transform(); (full way - org.apache.commons.collections4.CollectionUtils.transform();
,但我无法理解它是如何工作的以及如何编写包含所有内容的方法。在示例中( http://www.baeldung.com/apache-commons-collection-utils , http://apachecommonstipsandtricks.blogspot.ru/2009/01/examples-of-functors-transformers.html )我看到人们如何在主方法中重写该方法,但是如何编写方法以及如何使用它?
最佳答案
根据您的链接( http://www.baeldung.com/apache-commons-collection-utils ),您需要使用 CollectionUtils.collect
方法,并提供一个 Transformer
作为该方法的第二个参数。我猜想collect
函数会迭代元素,并为每个元素调用transform
方法,该方法从类型A获取元素并从类型B返回元素。总的来说,它看起来像这样:
List<String>listOfString = CollectionUtils.collect(listOfIntegers, new
Transformer<Integer, String>() {
public String transform(Integer numbers) {
//Do whatever you need to transform it to a String and return the String.
return number.toString() // a suggestion
}
});
另一种方法是仅使用 java 8 具有的 stream
机制,并使用 map
方法将每个元素映射到其他元素。
listOfNum.stream().map(integer -> integer.toString()).collect(Collectors.toList());
关于java - 如何将 List<firstType> 转换为 List<SecondType>? (Apache CollectionUtils),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48131275/
我需要创建方法transformer它可以改变对象的类型。例如:我有List sampl e 更改为 List sample.如何编写方法来做到这一点?我真的不明白,因为我知道apache已经有rhi
我是一名优秀的程序员,十分优秀!