paip. java的 函数式编程 大法



Java 语言中常被忽视的一个方面是它被归类为一种命令式(imperative)编程语言。命令式编程虽然由于与 Java 语言的关联而相当普及,但是并不是惟一可用的编程风格,也不总是最有效的。在本文中,我将探讨在 Java 开发实践中加入不同的编程方法 ── 即函数编程(FP



如何使用像闭包(closure)和 高阶函数(higher order function)这样的函数编程结构,在 Java 语言中编写良构的、模块化的代码。



作者Attilax 艾龙,  EMAIL:1466519819@qq.com

来源:attilax的专栏

地址:http://blog.csdn.net/attila





///////为什么使用函数式编程??

在java中,主要体现在

1. 提高代码可读性.

2. 提高灵活性.



 

/////////建立以及初始化对象(函数式编程方法)

    Set set = new HashSet() {

            {

                add(1);

                add(2);

            }

        };

        String[] a = {};

        String[] b = {"aa","bb"};



/////////////动态添加方法,调用方法.运算结果复职

String s = new HashSet() {

        

            public String $() {

                return "halo world";

            }



        }.$();



//////////////调用匿名方法(无返回值)

  new HashSet() {

                {

                    //something

                }

            };



//////////////调用匿名方法(有返回值)

         new tryX<Object>() {



            @Override

            public Object $(Object t) throws Exception {

                // TODO Auto-generated method stub

                return null;

            }



        

        }.$();





//////////闭包, handle消息

button.onAction(new EventHandler<ActionEvent>() {

    @Override

    public void handle(ActionEvent e) {

        doSomethingWith(e);

    }

});











/////////参考

Funcito新闻 - Java函数式编程 - 开源中国社区.htm

基于范型的java函数式编程(一) - 游弋在移动互联网的银狐999 - 博客频道 - CSDN.NET.htm

面向Java开发者的函数式编程 (豆瓣).htm

paip. java的 函数式编程 大法的更多相关文章

  1. Java Stream函数式编程案例图文详解

    导读 作者计划把Java Stream写成一个系列的文章,本文只是其中一节.更多内容期待您关注我的号! 一.什么是Java Stream? Java Stream函数式编程接口最初是在Java 8中引 ...

  2. Java Stream函数式编程图文详解(二):管道数据处理

    一.Java Stream管道数据处理操作 在本号之前发布的文章<Java Stream函数式编程?用过都说好,案例图文详解送给你>中,笔者对Java Stream的介绍以及简单的使用方法 ...

  3. Java 8 函数式编程

    今天打开Oracle Java官网一看,Java已经更新到 13 了 https://www.oracle.com/technetwork/java/javase/jdk-relnotes-index ...

  4. Guava 教程(3):Java 的函数式编程,通过 Google Collections 过滤和调用

    原文出处: oschina 在本系列博客的第一.二部分,我介绍了非常优秀的Google Collections和Guava包.本篇博客中我们来看看如何使用Google Collections来做到过滤 ...

  5. Java 之 函数式编程

    一.Lambda 的延迟执行 有些场景的代码执行后,结果不一定会被使用,从而造成性能浪费.而Lambda表达式是延迟执行的,这正好可以作为解决方案,提升性能 . 性能浪费的日志案例 注意:日志可以帮助 ...

  6. Java Stream函数式编程第三篇:管道流结果处理

    一.Java Stream管道数据处理操作 在本号之前写过的文章中,曾经给大家介绍过 Java Stream管道流是用于简化集合类元素处理的java API.在使用的过程中分为三个阶段.在开始本文之前 ...

  7. Java 中函数式编程方法形参为基本类型和引用类型

    简单复习下 基本数据类型值传递 值传递,原变量的值不会被修改 private final Consumer sout = System.out::println; @Before public voi ...

  8. Java函数式编程原理以及应用

    一. 函数式编程 Java8所有的新特性基本基于函数式编程的思想,函数式编程的带来,给Java注入了新鲜的活力. 下面来近距离观察一下函数式编程的几个特点: 函数可以作为变量.参数.返回值和数据类型. ...

  9. Java 函数式编程(Lambda表达式)与Stream API

    1 函数式编程 函数式编程(Functional Programming)是编程范式的一种.最常见的编程范式是命令式编程(Impera Programming),比如面向过程.面向对象编程都属于命令式 ...

随机推荐

  1. Python全栈之路-----基础篇

    Python诞生 Python是著名的”龟叔“Guido van Rossum(吉多·范罗苏姆)在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言. Python语法很多来自C,但又受到 ...

  2. XML Xpath学习

    Xpath是一门在xml文档中查找信息的语言. Xpath可用来在xml文档中对元素和属性进行遍历. <1>路径表达式1: 斜杠(/)作为路径内部的分隔符 同一个路径有绝对路径和相对路径两 ...

  3. 摘抄——读《大话移动APP测试 Android与IOS》

    用了两天读完了<大话移动APP测试 Android与IOS>,由于刚开始接触移动测试,技术型的篇章只能先放过了o(╯□╰)o,有以下内容觉得很有必要时不时的看看,来反思自己的工作,自勉!! ...

  4. css3之过渡

    transition属性 属性 描述 transition 设置4个过渡效果属性值 transition-property 设置过渡的属性名 transition-duration 设置过渡效果时间, ...

  5. Android开源框架——Picasso

    开篇——介绍Picasso (Picasso是什么?)Picasso:A Powerfull Image Downloading and Caching Library for Android,即An ...

  6. OpenLayers中的图层

    OpenLayers有多个不同的图层类,每一个都可以连接到不同的地图服务器.例如通过Layer.WMS类可以连接到WMS地图服务器,通过Layer.Google类可以连接到谷歌地图服务器.OpenLa ...

  7. nodejs: 理解Buffer

    学习nodejs中buffer这一章,有一段写到buffer的拼接,其中一段源码非常优美,特拿来与大家共享. var chunks = []; var size = 0; res.on('data', ...

  8. lvs DR模式

    1.单机 director端ifconfig eth0:1 $vip broadcast $vip netmask 255.255.255.255 up ----broadcast广播(单机的时候加这 ...

  9. android中掩码的使用

    掩码是一串二进制代码对目标字段进行位与运算,屏蔽当前的输入位,所以有时又称为屏蔽码. 在Android中常使用这种技巧设置flag来判断标记,具体实现可参考framework层的WindowManag ...

  10. Windows,linux快捷键

    Window系统 按着Alt + 鼠标左键点击  = 直接打开点击空间的属性