草庐IT

java - 使用 lambdaj 过滤集合

我有两个这样的类:publicclassOrder{privateIntegerid;privateListpositions;...}publicclassPosition{privateIntegerid;privateStringcontent;...}现在,我有一个包含订单的列表,我想获取所有具有特定内容的头寸的订单。目前我是这样做的:Listorders=...;ListoutputOrders=...;for(Orderorder:orders){if(select(order.getPositions(),having(on(Position.class).getCont

lambdaj 闭包中使用的 Java 机制

Lamdbaj允许在Java语言中定义闭包,可以找到各种例子here我的问题是关于使用中的底层Java机制,例如,要定义println闭包,使用以下代码:Closureprintln=closure();{of(System.out).println(var(String.class));}此闭包随后可以通过以下方式执行:println.apply("foobar");我很好奇Java中的什么机制允许对of(...).println(...)的调用与println相关联实例本身。当然,可以阅读lambdaj源代码,但如果有人有的话,我希望能得到稍微更高层次的解释。我的反射(reflec

java - Lambda 表达式与 lambdaj

在我去年做的一个Java集成项目中,我发现了lambdaj,并立即相信它能够让我更快地生成更具可读性的代码。我记得当时也读过有关lambda表达式即将发布到1.8的信息,并且认为我找到了一个已经为我提供了所有这些功能的插件。现在我正在重新审视lambda表达式,发现我可能对lambdaj的目的和范围有误。在我现在看来,lambdaj并没有真正提供lambda表达式,而是一种旨在取代集合中重复循环的领域特定语言。它的DSL语法看起来类似于匿名函数,并提供一些相同的功能,例如闭包和柯里化(Currying)函数,但最终它受到了JLS的限制。我现在想知道1.8的lambda表达式可以为Jav

java - 从 List<Foo> 到 Map<String, List<Foo>> : looking for a better implementation

让我给你看我的代码:Foo类publicclassFoo{Stringcode;Stringvalue;publicFoo(Stringcode,Stringvalue){super();this.code=code;this.value=value;}//getters/setters}主要方法(关注getFooMultiMapCode()方法):publicclassFooMain{publicstaticvoidmain(String[]args){Foofoo1=newFoo("100","foo1");Foofoo2=newFoo("200","foo2");Foofoo3=

java - Java bean 的类型安全属性名称

我正在寻找以类型安全的方式获取属性名称的替代方法。例如,使用lambdaj,我可以这样做:propertyName(on(Contract.class).getContractKey())但这有点冗长,性能也不是很好。我希望在构建过程中生成一些东西。 最佳答案 你检查过了吗BeanUtils?获取属性的名称通常不是类型不安全的部分,它是通过名称访问属性,这往往是类型不安全的。 关于java-Javabean的类型安全属性名称,我们在StackOverflow上找到一个类似的问题:

java - Java 中嵌套集合/结构的类型安全展平

我想在Java中展平任意深度嵌套的集合/结构,最好用只有实时View,没有复制的集合;不仅可以处理Collections,还可以处理Iterator、任意维度的T数组、Iterable,以及所有这些任意混合和嵌套的结构;静态类型安全。是否有可以处理此问题的java库?Guava似乎只处理一个嵌套级别,即Collection>--展平-->Collection.lambdaj看起来很有前途:我能以某种方式结合on(),asIterator()和flattenIterator()为了达成这个?以静态类型安全的方式? 最佳答案 Guava

java - Java 中 .NET 的 Lambda 表达式

我最近[再次]从C#转向Java。但我非常想念lambda表达式和C#的IEnumerable.Foreach之类的东西。所以我正在寻找Java中的lambda表达式库。还有比LambdaJ更好的图书馆吗??另外,clojure是否可以在Java程序中直接内联?那就是我可以在Java函数中混合clojure代码吗? 最佳答案 Java8可能有本地的lambda支持。在那之前,您可以结合使用匿名内部类和库,例如google-guava.以下是您可以查看的其他库http://commons.apache.org/collections/

java - 在安卓中使用 lambdaj

有人试过在android开发中使用lambdaj库吗?当我创建一个简单的小型java应用程序时,它对我来说工作正常,但我无法在android应用程序中使用它。更新:我正在添加lambdaj(lambdaj-2.3.2-with-dependencies.jar,从http://code.google.com/p/lambdaj下载),然后在构建我的应用程序时出现以下错误:Dxwarning:IgnoringInnerClassesattributeforananonymousinnerclass(org.hamcrest.generator.qdox.directorywalker.D

java - Lambdaj FinalClassArgumentCreators 的应用程序范围的配置。在哪里以及如何做?

我们在配置lambdaj以使用JodaTime时遇到问题。由于LocalDate是final类,Lambdaj需要像下面这样初始化:(seebug70)publicclassLocalDateArgumentCreatorimplementsFinalClassArgumentCreator{privatefinallongMSECS_IN_DAY=1000L*60L*60L*24L;publicLocalDatecreateArgumentPlaceHolder(intseed){returnnewLocalDate((long)seed*MSECS_IN_DAY);}}Argume