找到 4330 篇文章 关于 Java 8

如何在 Java 中使用泛型方法引用?

raja
更新于 2020年7月11日 12:25:52

777 次查看

方法引用在 Java 8 中引入,类似于 lambda 表达式。它允许我们引用方法或构造函数,而无需执行它们。方法引用和 lambda 表达式需要一个目标类型,该类型包含一个兼容的功能接口。我们还可以将方法引用与 Java 中的泛型类和泛型方法一起使用。示例接口 MyFunc {    int func(T[] vals, T v); } 类 MyArrayOps {    静态 int countMatching(T[] vals, T v) {       int count = 0;       对于 (int i=0; i < vals.length; i++)          如果 (vals[i] == v)             count++;       返回 count;   ... 阅读更多

什么是 Java 中的泛型函数接口?

raja
更新于 2020年7月11日 12:23:09

3K+ 次查看

lambda 表达式不能指定类型参数,因此它不是泛型的。但是,与 lambda 表达式关联的功能接口是泛型的。在这种情况下,lambda 表达式的目标类型由声明功能接口引用时指定的参数类型确定。语法接口 SomeFunc {  T func(T t); }示例接口 MyGeneric {    T compute(T t); } 公共类 LambdaGenericFuncInterfaceTest {    公共静态 void main(String args[]) {       MyGeneric reverse = (str) -> {   // Lambda 表达式          String result = "";          对于 (int i = str.length()-1; i >= 0; i--)           ... 阅读更多

Java 中 lambda 表达式中局部变量的规则是什么?

raja
更新于 2020年7月11日 11:57:48

4K+ 次查看

lambda 表达式可以捕获变量,如局部变量和匿名类。换句话说,它们对封闭作用域的局部变量具有相同的访问权限。在 lambda 表达式中使用局部变量时,我们需要遵循一些规则。lambda 表达式不能像匿名内部类那样定义任何新的作用域,因此我们不能声明与 lambda 表达式封闭作用域中已声明的局部变量相同的局部变量。在 lambda 表达式内部,我们不能为在 lambda 表达式外部声明的某些局部变量分配任何值。因为在 lambda 表达式外部声明的局部变量可以是 final 或有效 final。规则 ... 阅读更多

如何在 Java 中的 lambda 表达式中使用 ArrayList?

raja
更新于 2020年7月11日 11:40:27

2K+ 次查看

lambda 表达式是在不创建匿名类的情况下实现功能接口的内联代码。ArrayList 可用于存储动态大小的元素集合。在下面的程序中,我们使用 removeIf() 方法删除了年龄小于或等于 20 的 ArrayList 元素。此方法在 Java 8 版本中引入,用于删除满足条件的集合中的所有元素。语法public boolean removeIf(Predicate filter) 参数 filter 是一个 Predicate。如果给定的谓词满足条件,则可以删除该元素。此方法在删除元素时返回布尔值 true,否则返回 false。示例导入 java.util.*; ... 阅读更多

如何在 Java 中的方法引用中使用 this 和 super 关键字?

raja
更新于 2020年7月11日 08:55:49

912 次查看

方法引用类似于 lambda 表达式,它引用方法而不执行它,并且“::”运算符可用于在方法引用中分隔方法名称和对象或类的名称。可以使用 this 和 super 关键字在 Java 中引用方法。super 关键字可用作限定符,以在类或接口中调用被覆盖的方法。语法this::instanceMethod TypeName.super::instanceMethod示例导入 java.util.function.Function; 接口 Defaults {    默认 int doMath(int a) {       返回 2 * a;    } } 公共类 Calculator 实现 Defaults { ... 阅读更多

什么是 Java 中 lambda 表达式的目标类型?

raja
更新于 2020年7月11日 08:30:22

2K+ 次查看

为 lambda 表达式调用的功能接口称为 lambda 表达式的目标类型。这意味着如果为某个“X”接口调用了 lambda 表达式,则“X”是该 lambda 表达式的目标类型。因此,我们得出结论,lambda 表达式只能在 Java 编译器可以确定目标类型的情况下使用。在下面的示例中,lambda 表达式的目标类型是 BiFunction。会自动创建一个实现功能接口的类的实例,并且 lambda 表达式提供了功能接口声明的抽象方法的实现。示例接口 BiFunction { ... 阅读更多

在 Java lambda 表达式中使用异常时需要遵循哪些规则?

raja
更新于 2019年12月20日 08:36:16

3K+ 次查看

lambda 表达式本身无法执行。它用于实现功能接口中声明的方法。为了在 lambda 表达式中使用异常处理机制,我们需要遵循一些规则。lambda 表达式的规则lambda 表达式不能抛出任何已检查异常,除非其对应的功能接口声明了 throws 子句。lambda 表达式抛出的异常可以与其功能接口的 throws 子句中声明的异常类型相同或为其子类型。示例-1接口 ThrowException { void throwing(String message); } 公共类 LambdaExceptionTest1 { ... 阅读更多

如何在 Java 中将 lambda 表达式作为方法参数传递?

raja
更新于 2019年12月19日 13:09:20

7K+ 次查看

lambda 表达式是 Java 中的匿名或未命名方法。它本身不会执行,而是用于实现功能接口中声明的方法。如果要将 lambda 表达式作为方法参数传递到 Java 中,则接收方法参数的类型必须为功能接口类型。示例接口 Algebra { int operate(int a, int b); } 枚举 Operation { ADD, SUB, MUL, DIV } 公共类 LambdaMethodArgTest { 公共静态 void main(String[] args) { print((a, b) -> ... 阅读更多

如何在 Java 中的 lambda 表达式中编写条件表达式?

raja
更新于 2020年7月11日 07:48:12

3K+ 次查看

条件运算符用于在 Java 中创建条件表达式。它也称为三元运算符,因为它有三个操作数,例如布尔条件、第一个表达式和第二个表达式。我们还可以在下面的程序中在 lambda 表达式中编写条件表达式。示例接口 Algebra {    int substraction(int a, int b); } 公共类 ConditionalExpressionLambdaTest {    公共静态 void main(String args[]) {       System.out.println("The value is: " + getAlgebra(false).substraction(20, 40));       System.out.println("The value is: " + getAlgebra(true).substraction(40, 10));    }    静态 Algebra getAlgebra(boolean reverse) {       Algebra alg = reverse ... 阅读更多

什么是 Java 中的强制转换表达式?

raja
更新于 2020年7月11日 07:40:37

660 次浏览

强制转换表达式提供了一种机制,可以在无法从上下文中方便地推断 lambda 表达式的类型时显式提供该类型。当方法声明重载了不相关的函数式接口类型时,它也很有用。语法Object o = () -> { System.out.println("TutorialsPoint"); }; // 非法:Object o = (Runnable) () -> { System.out.println("TutorialsPoint"); }; // 合法示例interface Algebra1 {    int operate(int a, int b); } interface Algebra2 {    int operate(int a, int b); } public class LambdaCastingTest {    public static void main(String[] args) {       printResult((Algebra1)(a, b) -> a + b);  // 强制转换表达式 ... 阅读更多

广告