2012-02-15 27 views
3

「プレースホルダのヌルを変換することができません」が発生します。だから、私は書くの例のように:単純な抽出物は、私は、単純なPOJOを持っている

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) 

これは非常に私はここに行方不明です、本当に基本的な操作のように思えますか?

答えて

8

Lambdajは、(非最終的な)クラスをプロキシでラップし、METHOD呼び出しを代行受信します。つまり、フィールドでは動作しませんが、そのようなメソッドでのみ動作します。

extract(users, on(UserId.class).getSsn()); 
関連する問題