LambdaJ を調べ始めたところ、すぐに問題が発生しました。私は何か変なことをしているとは思いませんが、これを行う方法がわかりません。
管理者のリストがあります:
List<Administrator> allAdmins;
これらの管理者をマップしたいマップがあります:
Map<String, Administrator> adminIdToAdmin = new HashMap<String, Administrator>();
問題は、Administrator クラスの ID が String ではなく Long であることです。だから、私は次のことを試しました:
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)
マップを Long を含むように変更し、toString() を取り除くと、エラーはなくなります。
これを行う正しい方法は何ですか?