是否可以从lambda表达式中包含的方法返回值?

时间:2016-01-29 13:54:57

标签: java lambda

我遇到一行java书,其中说明“当一个lambda表达式中发生return语句时,它只会导致从lambda返回。它不会导致封闭方法返回”。

上述语句是否意味着我们无法从lambda表达式中包含的方法返回值。 我找不到任何例子,所以创建了一个不会编译的虚拟程序。

Numeric num=(n)->{               // assume interface Numeric{  int func(int n); }

        int a=5;

      int result=n/a;

     resultMethod(n)   // assume int resultMethod(int a) is method.
{
return n;
}

return result;
}
System.out.println(num.func(12));

2 个答案:

答案 0 :(得分:0)

 Private Sub CommandButton1_Click()

    Sheets("Sheet1").Range("A1:A5").Copy
    Sheets("Sheet2").Activate
    Dim lastrow As Long
    lastrow = Range("A65536").End(xlUp).Row

    Cells(lastrow + 1, 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True

    End Sub

这将检查输入的值是否为Null文本。如果您在promt中输入Null作为文本,这将适用。如果你想检查n是NULL,请尝试下面的代码

 if(  n.equals("Null"))
 {

 }

答案 1 :(得分:0)

见这个例子:

public static void main() {
    funcInt fi = (n) -> {
        return n;
    }
    System.out.println("This will be executed");
}

在上面的示例中,将打印print语句。

lambda表达式中的return语句不会在不打印语句的情况下返回main。