Java 8中对lambda表达式的支持

Java 8中对lambda表达式的支持,java,lambda,java-8,Java,Lambda,Java 8,在C#中,当我们想要创建可以将lambda表达式作为参数的方法时,我们可以根据情况使用Action或Func。新的Java8增加了对lambdas的支持,但我找不到任何合适的例子来说明如何使用它。假设我想用Java创建一个类似于C#one的方法: 公共静态布尔检查(字符串S,函数a操作){ 返回操作; } 那么,这是如何用Java编写的呢?如果lambda返回一个布尔值,则可以使用谓词: public static boolean check (String s, Predicate<

在C#中,当我们想要创建可以将lambda表达式作为参数的方法时,我们可以根据情况使用
Action
Func
。新的Java8增加了对lambdas的支持,但我找不到任何合适的例子来说明如何使用它。假设我想用Java创建一个类似于C#one的方法:

公共静态布尔检查(字符串S,函数a操作){
返回操作;
} 

那么,这是如何用Java编写的呢?

如果lambda返回一个
布尔值
,则可以使用
谓词

public static boolean check (String s, Predicate<String> pred)
{
    return pred.test(s);
}

如果lambda返回一个
布尔值
,则可以使用
谓词

public static boolean check (String s, Predicate<String> pred)
{
    return pred.test(s);
}

运行时的Lambda表达式基本上是。因此,任何将函数接口类型作为参数的方法都可以传递lambda表达式

例如,Java8在包中定义了许多现成的功能接口。你可以用其中一个。甚至你也可以自己创造。对于您的用例,等效的一个是。对于布尔返回值,您可以直接使用

因此,假设您的方法定义如下:

public static boolean check(String testString, Predicate<String> predicate) {
    return predicate.test(testString);
}
check("Some String to test predicate on", s -> s.length() > 10);

运行时的Lambda表达式基本上是。因此,任何将函数接口类型作为参数的方法都可以传递lambda表达式

例如,Java8在包中定义了许多现成的功能接口。你可以用其中一个。甚至你也可以自己创造。对于您的用例,等效的一个是。对于布尔返回值,您可以直接使用

因此,假设您的方法定义如下:

public static boolean check(String testString, Predicate<String> predicate) {
    return predicate.test(testString);
}
check("Some String to test predicate on", s -> s.length() > 10);

可能重复的有几个关于如何使用lambdas的好例子,最好的例子是方法8。可能重复的有几个关于如何使用lambdas的好例子,最好的例子是方法8。我认为OP对如何调用该方法更感兴趣,至少我是这样解释他的问题的,因为方法本身不需要lambda,只需要调用。@RandRandom
那么这到底是如何用Java编写的?
意味着OP想知道如何定义在Java中接受lambda表达式的方法。我想OP更感兴趣的是如何调用该方法,至少我是这样解释他的问题的,因为这个方法本身不需要lambda,只需要调用。@RandRandom
那么这到底是如何用Java编写的呢?
意味着OP想知道如何定义在Java中接受lambda表达式的方法。