Java8:java.lang.function实例|功能接口教程

137 阅读1分钟

java.lang.function包提供了各种原始供应者接口。 java8有不同数据类型的功能接口,如整数、长、双数和布尔。这篇文章解释了各种原始供应商和使用实例。

所有这些接口都可以用lambda表达式和方法/构造器引用来分配。

在所有的接口例子中都使用了元素类:

package org.cloudhadoop.functions;  
public class Element {  
  
 private Boolean enabled;  
 private Integer number;  
  
 public Element(Integer number, Boolean enabled) {  
  this.enabled = enabled;  
  this.number = number;  
 }  
  
 public Boolean getEnabled() {  
  return enabled;  
 }  
  
 public void setEnabled(Boolean enabled) {  
  this.enabled = enabled;  
 }  
  
 public Integer getNumber() {  
  return number;  
 }  
  
 public void setNumber(Integer number) {  
  this.number = number;  
 }  
}  

IntSupplier类

java.util.function.IntSupplier接口被用作整数结果的提供者。

它有一个抽象的方法getAsInt()返回整数值。

IntSupplier intSupplier = ()-> 20;  
System.out.println(intSupplier.getAsInt());  
Element element = new Element(87,false);  
IntSupplier intSupplier1 = element::getNumber;   
System.out.println(intSupplier1.getAsInt());  

DoubleSupplier类

java.util.function.DoubleSupplier接口被用作双倍结果的供应商。它有单一的抽象方法getAsDouble()返回双倍结果。

DoubleSupplier doubleSupplier = ()-> 15;  
System.out.println(doubleSupplier.getAsDouble());  
Element element = new Element(14,false);  
DoubleSupplier doubleSupplier1 = element::getNumber;   
System.out.println(doubleSupplier1.getAsDouble());  

LongSupplier类

这个接口定义在java.util.function中,被用作长结果的供应者。它有单一的抽象方法getAsLong()返回长值。

LongSupplier longSupplier = ()-> 25l;  
System.out.println(longSupplier.getAsLong());  
Element element = new Element(24,false);  
LongSupplier longSupplier1 = element::getNumber;   
System.out.println(longSupplier1.getAsLong());  

BooleanSupplier类

这个接口是作为布尔值的供应者使用的。它只有一个抽象的方法getAsBoolean返回布尔值的结果。

 BooleanSupplier booleanSupplier = ()-> false;  
System.out.println(booleanSupplier.getAsBoolean());  
Element element = new Element(124,true);  
BooleanSupplier booleanSupplier1 = element::getEnabled;   
System.out.println(booleanSupplier1.getAsBoolean());