0

オブジェクトをパラメータとしてのみ受け入れる外部ライブラリに対処する必要があります。次のようなメソッド シグネチャ:ExternalObj.setValue(Object object)

私の質問は、なぜ以下の愚かなWrapperが必要なのですか?

public class FuntionTest {

    public class Foo{
    private Object thing;
    public void setObject(Object thing){
        this.thing=thing;
    }
    public void call(){
        ((Function)thing).apply("FOOO");
    }

    public <R,T> Function<R,T> stupidWrapper(Function<R,T> function){
        return function;
    }
}


@Test
public void testFunction(){
    Foo foo = new Foo();
    foo.setObject(
      foo.stupidWrapper(
         (baz) -> { 
                    System.out.println(baz);
                    return null;
                   })); 
    foo.call();
}

ランバを直接使用できないのはなぜですか?

4

0 に答える 0