我想将值设置为对象的字段,以便它首先获取该字段的先前值,然后将某些内容附加到该字段,然后将其设置为该字段。
在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,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19722880/