找到 4330 篇文章 适用于 Java 8
10K+ 浏览量
Lambda 表达式是一个匿名方法,用于提供函数式接口定义的方法的实现。在 Java 8 中,lambda 表达式的正文也可以是复杂的表达式或语句,这意味着 lambda 表达式可以包含多行。在这种情况下,分号是必需的。如果 lambda 表达式返回结果,则还需要 return 关键字。语法([逗号分隔的参数列表]) -> {多行语句}示例接口 Employee { String displayName(String s); } public class MultilineLambdaTest { public static void main(String[] s) { ... 阅读更多
7K+ 浏览量
java.util.function 包定义了一些内置函数式接口,这些接口可以在创建 lambda 表达式或方法引用时使用。内置函数式接口:1) Function 接口Function 接口只有一个方法 apply()。它可以接受任何数据类型的对象并返回任何数据类型的结果。示例import java.util.*; import java.util.function.*; public class FunctionTest { public static void main(String args[]) { String[] countries = {"India", "Australia", "England", "South Africa", "Srilanka", "Newzealand", "West Indies", "Scotland"}; Function converter = (all) -> { // lambda 表达式 String names = ""; ... 阅读更多
239 浏览量
构造函数引用类似于方法引用,只是方法名称为“new”。它可以通过使用“类名”和关键字“new”以及以下语法创建。语法 :: new在下面的示例中,我们使用 java.util.function.Function。它是一个函数式接口,其单个抽象方法是 apply()。Function 接口表示一个操作,该操作接受单个参数 T 并返回结果 R。示例import java.util.function.*; @FunctionalInterface interface MyFunctionalInterface { Employee getEmployee(String name); } class Employee { private String name; public Employee(String name) { this.name = name; } public String ... 阅读更多
1K+ 浏览量
当我们对 Java 监听器使用 lambda 表达式时,我们不必显式实现 ActionListener 接口。相反,我们可以使用以下语法。语法button.addActionListener(e -> { // 一些语句 });ActionListener 接口仅定义一个方法 actionPerformed()。它是一个函数式接口,这意味着可以使用 lambda 表达式替换代码。示例import java.awt.*; import java.awt.event.*; import javax.swing.*; public class LambdaListenerTest extends JFrame { public static void main(String args[]) { new LambdaListenerTest(); } private JButton button; public ClickMeLambdaTest() { setTitle("Lambda 表达式测试"); button = ... 阅读更多
3K+ 浏览量
将 lambda 表达式传递给具有函数式接口类型参数的方法。如果需要将 lambda 表达式作为参数传递,则接收 lambda 表达式参数的参数类型必须为函数式接口类型。在下面的示例中,lambda 表达式可以传递给一个方法,该方法的参数类型为“TestInterface”。示例接口 TestInterface { boolean test(int a); } class Test { // lambda 表达式可以作为 check() 方法的第一个参数传递 static boolean check(TestInterface ti, int b) { return ti.test(b); } } public class ... 阅读更多
886 浏览量
lambda 表达式由两部分组成,一部分是参数,另一部分是表达式,这两部分由箭头(->)符号分隔。lambda 表达式可以访问其封闭作用域的变量。lambda 表达式可以访问其封闭类的实例变量和静态变量,还可以访问其封闭作用域中实际是 final 或 final 的局部变量。语法(参数列表) -> 表达式示例接口 TestInterface { void print(); } public class LambdaExpressionTest { int a; // 实例变量 static int b; // 静态变量 LambdaExpressionTest(int x) { // 构造函数初始化实例变量 this.a = ... 阅读更多
3K+ 浏览量
lambda 表达式主体不能抛出函数式接口中未指定的任何异常。如果 lambda 表达式可以抛出异常,则函数式接口的“throws”子句必须声明相同的异常或其子类型之一。示例接口 Student { void studentData(String name) throws Exception; } public class LambdaExceptionTest { public static void main(String[] args) { // lamba 表达式 Student student = name -> { System.out.println("学生的姓名是:" + name); throw new Exception(); }; try { student.studentData("Adithya"); } catch(Exception e) { } } }输出学生的姓名是:Adithya
2K+ 浏览量
有效 final 变量指的是未显式声明为 final 的局部变量,并且一旦初始化就不能更改。lambda 表达式只能使用外部作用域中的局部变量,前提是它们是有效 final。语法(可选) (参数) -> 主体在下面的示例中,“size”变量未声明为 final,但它是有效 final,因为我们没有修改“size”变量的值。示例接口 Employee { void empData(String empName); } public class LambdaEffectivelyFinalTest { public static void main(String[] args) { int size = 100; Employee emp = name -> { // lambda ... 阅读更多