POM依赖:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
FunctionService 接口:
package study.com.biconsumer;
import java.util.Map;
import java.util.Set;
@FunctionalInterface
public interface FunctionService <K,V>{
//被@FunctionalInterface注解标记的类型表明这是一个函数接口。从概念上讲,函数接口只有一个抽象方法
public Set<K> getSet(Map<K,V> map);//只能定义一个抽象方法,方法名随意
// 静态方法
public static void print() {
System.out.println("静态方法");
}
// 默认方法,可以用多个默认方法
public default void show() {
System.out.println("默认方法");
}
// 覆盖Object中的equals方法
public boolean equals(Object obj);
}
TestFunctionInterface测试类:
package study.com.biconsumer;
import org.junit.Test;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
public class TestFunctionInterface{
public Set mapValueSet(Map<String,Object> map){
Set set = new HashSet();
map.forEach((k,v)->{
set.add(v);
});
return set;
}
@Test
public void testMethod(){
Map<String,Object> map = new HashMap<>();
map.put("张三","25");
map.put("李四","27");
map.put("王五","28");
FunctionService functionService = t -> {
return map.keySet();
};
System.out.println("map的key:"+functionService.getSet(map));
FunctionService functionService1 = this::mapValueSet;
System.out.println("map的value:"+functionService1.getSet(map));
}
}
运行结果: