找到 4330 篇文章 关于 Java 8
238 次浏览
DoubleUnaryOperator 是定义在 java.util.function 包中的一个函数式接口。此函数式接口期望一个类型为 double 的参数作为输入,但产生相同类型的输出。DoubleUnaryOperator 接口可用作 lambda 表达式和方法引用的赋值目标。此接口包含一个抽象方法:applyAsDouble(),一个静态方法:identity() 和两个默认方法:andThen() 和 compose()。语法@FunctionalInterface public interface DoubleUnaryOperator { double applyAsDouble(double operand); }Lambda 表达式示例import java.util.function.DoubleUnaryOperator; public class DoubleUnaryOperatorTest1 { public static void main(String[] args) { DoubleUnaryOperator getDoubleValue = doubleValue -> { // lambda 表达式 return doubleValue * 2; }; ... 阅读更多
386 次浏览
LongSupplier 是来自 java.util.function 包的内置函数式接口。此接口不期望任何输入,但会产生一个长整数值输出。由于 LongSupplier 是一个函数式接口,因此它可以用作 lambda 表达式和方法引用的赋值目标,并且仅包含一个抽象方法:getAsLong()。语法@FunctionalInterface public interface LongSupplier { long getAsLong(); }Lambda 表达式示例import java.util.function.LongSupplier; public class LongSupplierLambdaTest { public static void main(String args[]) { LongSupplier supplier = () -> { // lambda 表达式 return 75; }; long result = supplier.getAsLong(); System.out.println(result); } }输出75示例 ... 阅读更多
209 次浏览
LongPredicate 是定义在 java.util.function 包中的一个函数式接口。此接口主要用于评估类型为 long 的输入并返回类型为 boolean 的输出。LongPredicate 可用作 lambda 表达式或方法引用的赋值目标。它包含一个抽象方法:test() 和三个默认方法:and()、negate() 和 or()。语法@FunctionalInterface interface LongPredicate { boolean test(long value); }Lambda 表达式示例import java.util.function.LongPredicate; public class LongPredicateLambdaTest { public static void main(String args[]) { LongPredicate longPredicate = (long input) -> { // lambda 表达式 if(input == 50) { ... 阅读更多
4K+ 次浏览
构造函数引用类似于方法引用,只是方法的名称为 new。我们还可以使用数组类型创建构造函数引用。例如,如果我们需要使用构造函数引用创建整数数组:int[]:: new,其中参数是数组的长度。语法数组类型名称[]::new示例@FunctionalInterface interface ArrayCreator { int[] makeArray(int number); } public class ArrayConstructorRefTest { public static void main(String[] args) { ArrayCreator arrayCreator = int[]::new; // 数组的构造函数引用 int[] intArray = arrayCreator.makeArray(10); for(int i = 0; i < intArray.length; ... 阅读更多
8K+ 次浏览
方法引用也可以应用于 Java 8 中的构造函数。可以使用类名和 new 关键字创建构造函数引用。构造函数引用可以分配给任何定义与构造函数兼容的方法的函数式接口引用。语法::new具有一个参数的构造函数引用示例import java.util.function.*; @FunctionalInterface interface MyFunctionalInterface { Student getStudent(String name); } public class ConstructorReferenceTest1 { public static void main(String[] args) { MyFunctionalInterface mf = Student::new; Function f1 = Student::new; // 构造函数引用 Function f2 = (name) -> new Student(name); ... 阅读更多
333 次浏览
IntBinaryOperator 是 Java 8 中来自 java.util.function 包的一个函数式接口。此接口期望两个类型为 int 的参数作为输入,并产生一个 int 类型的结果。IntBinaryOperator 可用作 lambda 表达式或方法引用的赋值目标。它仅包含一个抽象方法:applyAsInt()。语法@FunctionalInterface public interface IntBinaryOperator { int applyAsInt(int left, int right) }示例import java.util.function.*; public class IntBinaryOperatorTest { public static void main(String[] args) { IntBinaryOperator test1 = (a, b) -> a + b; // lambda 表达式 System.out.println("两个参数的加法: " + test1.applyAsInt(10, 20)); IntFunction test2 = new IntFunction() { ... 阅读更多
2K+ 次浏览
Function 接口是来自 java.util.function 包的一个函数式接口。此接口期望一个参数作为输入并产生一个结果。Function 接口可用作 lambda 表达式或方法引用的赋值目标。它包含一个抽象方法:apply(),两个默认方法:andThen() 和 compose() 以及一个静态方法:identity()。语法@FunctionalInterface public interface Function { R apply(T t); }示例import java.util.function.Function; public class FunctionTest { public static void main(String[] args) { Function f1 = i -> i*4; // lambda System.out.println(f1.apply(3)); Function f2 = i -> i+4; // lambda ... 阅读更多
389 次浏览
DoubleSupplier 接口是定义在 java.util.function 包中的一个内置函数式接口。此函数式接口不期望任何输入,但会产生一个双精度值输出。DoubleSupplier 接口可用作 lambda 表达式和方法引用的赋值目标。此接口仅包含一个抽象方法:getAsDouble()。语法@FunctionalInterface public interface DoubleSupplier { double getAsDouble(); }Lambda 表达式示例import java.util.concurrent.ThreadLocalRandom; import java.util.function.DoubleSupplier; public class DoubleSupplierLambdaTest { public static void main(String args[]) { DoubleSupplier getRandomDouble = () -> { // lambda 表达式 double doubleVal = ThreadLocalRandom.current().nextDouble(0000, 9999); return Math.round(doubleVal); }; ... 阅读更多
13K+ 次浏览
功能接口是一个简单的接口,只有一个抽象方法。在 Java 8 中,可以通过功能接口使用 lambda 表达式。我们可以通过在接口中定义单一抽象方法 (SAM) 来声明我们自己的/自定义功能接口。语法interface CustomInterface { // 抽象方法 }示例@FunctionalInterface interface CustomFunctionalInterface { void display(); } public class FunctionInterfaceLambdaTest { public static void main(String args[]) { // 使用匿名内部类 CustomFunctionalInterface test1 = new CustomFunctionalInterface() { public void display() { System.out.println("使用匿名内部类显示"); ... 阅读更多
231 次查看
ObjLongConsumer 是来自 java.util.function 包的功能接口。此接口接受对象值和长整数值参数作为输入,但不产生任何输出。ObjLongConsumer 可以用作 lambda 表达式和方法引用的赋值目标,并且只包含一个抽象方法:accept()。语法@FunctionalInterface public interface ObjLongConsumer { void accept(T t, long value) }示例import java.util.function.ObjLongConsumer; public class ObjLongConsumerTest { public static void main(String[] args) { ObjLongConsumer olc = (employee, number) -> { // lambda 表达式 if(employee != null) { System.out.println("员工姓名:" + employee.getEmpName()); ... 阅读更多