您的位置:首页 > 编程语言 > Java开发

Rhyme/Java 8 四大核心函数式接口

2018-01-30 22:29 615 查看

Java 8 四大核心函数式接口



测试代码

package rhyme;

import org.junit.Test;

import java.util.ArrayList;
import java.util.List;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.function.Supplier;

/**
* Java8 四大核心接口
* @author RhymeChiang
* @date 2018/01/30
**/
public class Lambda2 {

/**
* 测试消费型函数接口
*/
@Test
public void testConsumerInterface(){
consumer(1000.00,(x) -> System.out.println("消费了" + x +"元"));
}

public void consumer(Double money,Consumer<Double> consumer){
consumer.accept(money);
}

/**
* test core interface of supplier
*/
@Test
public void testSupplierInterface(){
List<Integer> list = supplier(100,() -> (int)(Math.random()*100));
System.out.println(list);
}

public List<Integer> supplier(int loop, Supplier<Integer>supplier){
List<Integer> list = new ArrayList<>();
for (int i = 0; i <loop; i++) {
list.add(supplier.get());
}
return list;
}

/**
* test function interface
*/
@Test
public void testFunctionInterface(){
String abcde = function("abcde", (t1) -> t1.toUpperCase());
System.out.println(abcde);
}

public <T,R> R function(T t1, Function<T,R>function){
return function.apply(t1);
}

/**
* test predicate interface
*/
@Test
public void testPredicateInterface(){
boolean predicate = predicate(100, (x) -> {
if (x > 100) {
return true;
}
return false;
});
System.out.println(predicate);
}

public boolean predicate(Integer i, Predicate<Integer>predicate){
return predicate.test(i);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java8 函数式接口