1.什么是函数式接口:
函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。函数式接口可以被隐式转换为lambda表达式
函数式接口API。
标准函数式代码有:
package com.test.cgb;
@FunctionalInterface
public interface StandarFunctionInterface {
	void test(); // 默认公共抽象方法
	static void test1() {System.out.println("这是静态方法");};
	default void test2() {System.out.println("这是default方法");};
}
JDK1.8之前已有的函数式接口有:
java.lang.Runnable如:
@FunctionalInterface
public interface Runnable {
    /**
     * When an object implementing interface <code>Runnable</code> is used
     * to create a thread, starting the thread causes the object's
     * <code>run</code> method to be called in that separately executing
     * thread.
     * <p>
     * The general contract of the method <code>run</code> is that it may
     * take any action whatsoever.
     *
     * @see     java.lang.Thread#run()
     */
    public abstract void run();
}
java.util.Comparator如:
@FunctionalInterface
public interface Comparator<T> {}
java.util.cocurrent.Callable如:
@FunctionalInterface
public interface Callable<V> {
    /**
     * Computes a result, or throws an exception if unable to do so.
     *
     * @return computed result
     * @throws Exception if unable to compute a result
     */
    V call() throws Exception;
}
java.io.FileFilter如:
@FunctionalInterface
public interface FileFilter {
    /**
     * Tests whether or not the specified abstract pathname should be
     * included in a pathname list.
     *
     * @param  pathname  The abstract pathname to be tested
     * @return  <code>true</code> if and only if <code>pathname</code>
     *          should be included
     */
    boolean accept(File pathname);
}
JDK1.8新增加的函数接口:
java.util.function此包中包含了很多类,用来支持Java的函数式编程。
2.函数式接口注解:
@FunctionInterface:我们在函数式接口上加上此注解后,里面就只能够有一个抽象方法了。如果不满足条件,则会报错。
 
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号