Q
Invoke方法
1
A
回答
1
我认为你坚持以上。
也许Commons Collections可能会给你更可接受的东西。请参见CollectionUtils课程,特别是collect()和forAllDo()方法。
另外,JXPath可以为你做到这一点(它提供了Java bean的类XPath导航)。您可以指定一个表达式,如/A/@b
,它将返回一个b
的集合。如果你这样做了一次,这有点过分,但如果你正在迭代并浏览集合,这是一个非常简洁的方法。
编辑:正如我在下面的评论中指出的,斯卡拉将以更简洁的形式做到这一点。如果您正在JVM上运行并进行大量类似上述的收集工作,则可能需要检查它。
0
我相信JDK集合框架没有比迭代解决方案更优雅的东西。
2
为什么你不认为这是优雅的?几乎所有的东西都需要删除一些类型信息 - 通常你选择用Java编程,因为你想使用强类型和静态类型的语言。
或者也许是因为它有大量的库和框架以及大量的Manning书籍,并且所有继承的遗留代码都是用Java编写的。随你。
0
我结束了以下解决方案
List propertyList = new ArrayList();
CollectionUtils.collect(list,new Transformer() {
@Override
public Object transform(Object input) {
return ((LogMessage)input).getLogRunIds();
}
},propertyList);
不幸的是,转换接口使用泛型不允许,所以我必须使用显式强制
许多thakns布莱恩·阿格纽的洞察力
2
使用LambdaJ:
List<Integer> bees = collect(originalList, on(A).b);
基本上LamdbaJ的想法是将功能语言中的所有漂亮的列表方法都用到Java中,然后它甚至可以将it's own version of closures添加到整个堆中。肯定值得检查。
相关问题
- 1. invoke方法
- 2. invoke方法
- 3. Invoke方法
- 4. invoke void方法
- 5. invoke方法
- 6. Invoke方法在WindowsForms
- 7. 什么是Invoke && InvokeAsync方法?
- 8. 替换INVOKE的方法
- 9. Python,invoke方法返回__getattribute__
- 10. 从Invoke方法获取返回
- 11. Invoke方法使用的COM对象
- 12. Invoke调用中的匿名方法
- 13. C++ 11/14 INVOKE解决方法
- 14. Invoke方法与可选参数
- 15. invoke方法是不是静态与主
- 16. Invoke方法与参数给出错误
- 17. invoke方法当该方法已经被改变
- 18. 下划线js之间的区别_each方法和_.invoke方法
- 19. 无法调用invoke()
- 20. Invoke-Sqlcmd无法运行
- 21. Invoke-command -ArgumentList参数语法
- 22. Powershell无法识别invoke-sqlcmd
- 23. 无法使用Invoke-SqlCmd和Invoke-RestMethod创建Powershell脚本?
- 24. Invoke方法动态地在VB.Net SAP Business One的
- 25. 如何将COM对象作为IntPtr传递给P/Invoke方法?
- 26. c#使用P/Invoke导致AccessViolation的调用方法异常
- 27. 不能在另一个对象中使用invoke magic方法
- 28. 的P/Invoke GetSystemTime()方法是给错了输出
- 29. 获得Win32 p/Invoke声明的“正确”方法是什么?
- 30. 如何从XFire AbstractHandler的invoke()方法中获取ServletRequest对象?
不正确。 Scala是键入的,并且会更简洁地完成上述* lot *操作。例如col.map {a => a.b}。这是键入并返回一个'b'集合 – 2009-12-24 16:49:40
该片段没有类型信息 - 它的其余部分是什么样的? – danben 2009-12-24 16:51:46
对不起,我打算说静态类型。总是混合起来。 – danben 2009-12-24 16:52:30