找到 4330 篇文章 关于 Java 8
237 次浏览
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; }; ... 阅读更多
384 次浏览
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); ... 阅读更多
331 次浏览
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); }; ... 阅读更多
浏览量:12K+
函数式接口是一个简单的接口,只有一个抽象方法。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()); ... 阅读更多