是否可以将方法的返回值直接分配给变量?

时间:2019-05-27 01:36:43

标签: java methods

在JavaScript中,可以按照以下方式做一些事情:

var qwerty = (function() {
    //some code
    return returnValue;
}

这会将 returnValue 分配给 qwerty 。有没有办法用Java做类似的事情?像这样:

int num = {
    public int method() {
        //some code
        return val;
    }
}

我知道我可以写出一个单独的方法,但是我想以与上面类似的方式来做,因为它在我编写的代码中看起来更加整洁。

1 个答案:

答案 0 :(得分:4)

由于您的function未指定任何参数,因此您最有可能寻找IntSupplier功能界面:

IntSupplier supplier = () -> {
    int val = ...;
    //some code
    return val;
};

int num = supplier.getAsInt();

如果您真的要内联,则可以使用以下内容(该内容不可读,因此我不推荐使用):

int num = ((IntSupplier) () -> {
    int val = ...;
    //some code
    return val;
}).getAsInt();

由于上述IntSupplier未存储在变量中,因此在逻辑上等同于以下内容:

int val = ...;
//some code
int num = val;