我刚开始研究 LambdaJ,马上就遇到了问题。我不认为我在做任何奇怪的事情,但我不知道该怎么做。
我有一个管理员列表:
List<Administrator> allAdmins;
我有一张地图,我希望将这些管理员映射到:
Map<String, Administrator> adminIdToAdmin = new HashMap<String, Administrator>();
问题是 Administrator 类中的 ID 是 Long,而不是 String。所以,我尝试了以下方法:
adminIdToAdmin = index(allAdmins, on(Administrator.class).getAdministratorId().toString());
这是行不通的。它失败了:
ch.lambdaj.function.argument.ArgumentConversionException: Unable to convert the placeholder -2147483647 in a valid argument
at ch.lambdaj.function.argument.ArgumentsFactory.actualArgument(ArgumentsFactory.java:92)
at ch.lambdaj.function.convert.ArgumentConverter.<init>(ArgumentConverter.java:29)
at ch.lambdaj.Lambda.index(Lambda.java:1133)
如果我将地图更改为包含 Longs 并删除 toString(),错误就会消失。
这样做的正确方法是什么?