根据Lambda表达式的Oracle文档,它们与实现功能接口的匿名类相同(只有一个方法的接口).
因此,如果您有一个方法,该方法接受一个具有函数接口作为其引用类型的参数,则可以在调用该方法时使用lambda表达式.例:-
public boolean testString(Predicate<String> tester, String str);
Run Code Online (Sandbox Code Playgroud)
调用时testString,可以使用lambda表达式来减少编写比较器所需的代码量:
boolean result = testString(s -> { /* implement Predicate.test */}, str);
Run Code Online (Sandbox Code Playgroud)
当您想要将方法的核心功能留给调用者而不编写显式类/匿名类时.扩展上面的例子: -
boolean isStringPalindrome = testString(s -> { /* code to check if string is palindrome */}, "madam");
boolean doesStringContainVowels = testString(s -> { /* code to check if string contains vowels */}, "abc");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
187 次 |
| 最近记录: |