java - LambdaJ forEach 集合

标签 java collections lambdaj

我想为对象的字段设置值,以便它首先获取该字段的先前值并向其附加一些内容,然后将其设置为该字段。

在 LambdaJ forEach 中,我们可以这样做:

forEach(myCollection).setFieldValue("someValue");

但我需要的是:

forEach(myCollection).setFieldValue(getFieldValue() + "someValue");

在 LambdaJ 中可以吗?

最佳答案

我知道您问过有关 LambdaJ 的问题,我很好奇这样做是因为这是一个常见问题。

我对我所做的结果感到惊讶:

forEach(list).setName(on(User.class).getName() + "someValue");

我认为这将是您问题的答案。

因此,我通过使用 Guava 函数式方式尝试了一种不同的方法。它可以为您工作,所以我会发布答案(但如果您不同意,我可以删除它):

Guava 函数式方法:

    @Test
    public void test_applyPreviousValue() {

         List<User> filteredList = Lists.newArrayList(new User("Fede", 20), new User("Peter", 12), new User("John", 41));

         Function<User, User> getType = new Function<User, User>() {
             public User apply(User input) {
                  input.setName(input.getName()+"someValue");
                  return input;
             }
         };

         Collection<User> result = Collections2.transform(filteredList, getType);
         System.out.println(result);
     }

希望有所帮助

关于java - LambdaJ forEach 集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19722880/

相关文章:

java - 使用 ArgumentCaptor 验证模拟服务调用失败

java - 如何从另一个 Servlet 将响应发送回 Servlet

java - Java 中 .NET 的 Lambda 表达式

java - 使用 lambdaj 按多个条件过滤

java - 使用 JAXB 注释外部库中的对象

java - 如何在 Java 中创建一个新列表

c++ - 维护一个有序的(通过参数,int)集合

java - 从 array.sort() 到compareTo()

java - 用于过滤和修改列表项的 Lambdaj 或 apache 谓词

java - 将 HTML 转换为图像(通过自动调整大小的 JEditorPane)