我使用lambdaj 2.4与依赖关系。代码(非常简单):
List<Person> persons = Arrays.asList(
new Person(13,"Steve",22,"London, UK"),
new Person(25,"Greg",28,"New York, USA"),
new Person(5,"Emily",22,"Bali, Indonesia"),
new Person(9,"Malih",14,"Jakarta, Indonesia"));
List<String> personNames = extract(persons, on(Person.class).getName());
System.out.println("personNames: "+personNames);
但是它不工作,例外是:
java.lang.ExceptionInInitializerError
at ch.lambdaj.proxy.ProxyUtil.createEnhancer(ProxyUtil.java:89)
at ch.lambdaj.proxy.ProxyUtil.createProxy(ProxyUtil.java:49)
at ch.lambdaj.function.argument.ArgumentsFactory.createPlaceholder(ArgumentsFactory.java:68)
有什么想法让它在Android上工作吗?
如果可以选择,您应该考虑使用Retro Lambda。它是JDK 6的完整Java 8 Lambda表达式语法的后端。并且提供了完整的、真正的闭包(LambdaJ在缺乏语言级别支持的情况下是一个不错的选择)。
- 怀旧λ
复古Lambda Gradle Plugin
Stream Support - backport of Streams
关于为Android Studio设置RetroLambda的博客文章