@FunctionalInterface学习

例子显示有无@FunctionalInterface都能实现Lambda,不加的话再运行期会校验是否是函数接口,加了编译的时候就会校验

public class FunDemo {

public static void main(String[] args) {

/**

        * 第一个参数,就是定义了一个操作

        */

        handleInAndOut(t ->"88888" + t, "1000");

        handleOnlyIn(t -> System.out.println("9999" + t), "1000");

        handleOnlyOut(() ->"1000");

        handleInOutBoolean(t ->"1111".equals(t), "1111");

    }

public static void handleInAndOut (FunInAndOut f, String str) {

System.out.println("pre");

        System.out.println(f.test(str));

        System.out.println("after");

    }

public static void handleOnlyIn (FunOnlyIn f, String str) {

f.test(str);

    }

public static void handleOnlyOut (FunOnlyOut f) {

String test = f.test();

        System.out.println(test);

    }

public static void handleInOutBoolean (FunInOutBoolean f, String str) {

boolean test = f.test(str);

        System.out.println(test);

    }

/**

    * 有进有出

    * @param <T>

    */

    @FunctionalInterface

    interface FunInAndOut {

Stringtest(T t);

    }

/**

    * 有进无出

    * @param <T>

    */

    interface FunOnlyIn {

void test(T t);

    }

/**

    * 无进有出

    * @param <T>

    */

    interface FunOnlyOut {

T test();

    }

/**

    * 有进返回boolean

    * @param <T>

    */

    interface FunInOutBoolean {

boolean test(T t);

    }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom阅读 7,593评论 0 3
  • Java经典问题算法大全 /*【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子...
    赵宇_阿特奇阅读 5,935评论 0 2
  • DAY 05 1、 public classArrayDemo { public static void mai...
    周书达阅读 4,046评论 0 0
  • 50道经典Java编程练习题,将数学思维运用到编程中来。抱歉哈找不到文章的原贴了,有冒犯的麻烦知会声哈~ 1.指数...
    OSET我要编程阅读 11,960评论 0 9
  • 多态 任何域的访问操作都将有编译器解析,如果某个方法是静态的,它的行为就不具有多态性 java默认对象的销毁顺序与...
    yueyue_projects阅读 4,538评论 0 1