3
我有一个简单的POJO:与Lambdaj简单的提取物导致“无法转换占位符空”
class UserId {
String ssn;
String otsId;
Integer actorId;
public UserId(String ssn, String otsId, Integer actorId) {
this.ssn = ssn;
this.otsId = otsId;
this.actorId = actorId;
}
@Override
public String toString() {
return "[otsId=" + otsId + ", ssn=" + ssn + ", actorId=" + actorId + "]";
}
}
我想从那里抽取例如所有ssn
值到List<String>
。因此,正如一个例子,我写:
public class UserIdTest {
public static void main(String[] args) {
List<UserId> list = new ArrayList<UserId>();
list.add(new UserId("111111-1111", "12345678", new Integer(234589235)));
list.add(new UserId("111111-1111", "12345678", new Integer(234589235)));
list.add(new UserId("111111-1111", "12345678", new Integer(234589235)));
getSsnList(list);
}
private static List<String> getSsnList(List<UserId> users) {
return extract(users, on(UserId.class).ssn);
}
}
和LambdaJ抛出:
Exception in thread "main" ch.lambdaj.function.argument.ArgumentConversionException: Unable to convert the placeholder null in a valid argument
at ch.lambdaj.function.argument.ArgumentsFactory.actualArgument(ArgumentsFactory.java:76)
at ch.lambdaj.function.convert.ArgumentConverter.<init>(ArgumentConverter.java:29)
at ch.lambdaj.Lambda.extract(Lambda.java:1035)
at UserIdTest.getSsnList(UserIdTest.java:23)
at UserIdTest.main(UserIdTest.java:20)
这似乎是一个很基本的操作,我缺少什么吗?