Cannot convert void to java.lang.Void

前端 未结 2 549
有刺的猬
有刺的猬 2021-01-01 11:38

I\'m trying to do the following

interface Updater {
    void update(String value);
}

void update(Collection values, Updater updater) {
    upd         


        
2条回答
  •  轮回少年
    2021-01-01 12:08

    A Function returns a value, even if it is declared as being of type Void (you will have to return null then. In contrast, a void method really returns nothing, not even null. So you have to insert the return statement:

    void update(Collection values, Updater updater) {
        update(values, s -> { updater.update(); return null; }, 0);
    }
    

    An alternative would be to change the Function to Consumer, then you can use the method reference:

    void update(Collection values, Updater updater) {
        update(values, updater::update, 0);
    }
    void update(Collection values, Consumer fn, int ignored) {
        // some code
    }
    

提交回复
热议问题