Functional Java

函数式Java框架
授权协议 BSD
开发语言 Java
所属分类 程序开发、 其他开发相关
软件类型 开源软件
地区 不详
投 递 者 邢冷勋
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

在生产环境中为Java增加很多函数式语言结构。

Example:

 过滤出数组中的偶数

  1. import fj.data.Array;  
  2. import static fj.data.Array.array;  
  3. import static fj.pre.Show.arrayShow;  
  4. import static fj.pre.Show.intShow;  
  5. import static fj.function.Integers.even;  
  6.   
  7. public final class Array_filter {  
  8.   public static void main(final String[] args) {  
  9.     final Array a = array(9744673229017798107866467942);  
  10.     final Array b = a.filter(even);  
  11.     arrayShow(intShow).println(b); // {44,22,90,98,1078,6,64,6,42}  
  12.   }  
  13. }  
  • Ø  JDK1.8包括了许多功能性接口。它们中的一些是老版本中被熟知的接口,例如Comparator和Runnable。这些已存在的接口已经通过@FunctionalInterface注解扩展为支持Lambda表达式。   Ø  在 Java 中,Marker(标记)类型的接口是一种没有方法或属性声明的接口,简单地说,marker 接口是空接口。相似地,函数式接口是只包含一个抽象方法声明的接口  

  • Functional Java Functional Java是一个在Java语言中实现函数型编程范式的类库。 从接口上看,该类库似乎与Haskell语言关系密切,接口的方法名很多来自该语言。 <!-- https://mvnrepository.com/artifact/org.functionaljava/functionaljava --> <dependency> <groupId

  • Java之函数式接口(FunctionalInterface) 1. FunctionalInterface是什么? FunctionalInterface 中文称之为 函数式接口。是Java新特性之一,所谓的函数式接口,只能有一个抽象方法的接口(Interface) 2. FunctionalInterface有什么作用? 作为Java的新特性之一,主要是标识某一类接口,如果满足以上特性(只能有

  • Functional Programming in Java Lambda expressions are lightweight, highly concise anonymous methods backed by functional interfaces in Java 8. You can use them to leap forward into a whole new world o

  • import static fj.Ord.intOrd; import static fj.data.List.fromString; public class Jys2 { public static void main(String[] args) { String ss = "床前明月光疑是地上霜举头望明月低头思故乡"; fromString(ss).zipIndex()

  • 定义:一个接口中,只声明了一个抽象方法,此接口我们成为函数式接口 举例: @FunctionalInterface public interface StudTest<T> { int sum(T a,T b); } Java8提供得函数式接口: 4大核心函数式接口 接口名称 参数类型 返回类型 用途说明 Consumer<T> T void 对类型T的对象应用操作,包含方法accept

  • 1、函数式接口简介 函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。 使用场景:将函数作为方法参数传递 2、函数式接口案例 1、定义函数式接口 package com.example; // @FunctionalInterface注解 检查一个接口是否是一个函数式接口 @FunctionalInterface public

  • 文档 https://www.runoob.com/java/java8-functional-interfaces.html 定义函数式接口 package com.github.mouday.demo; /** * 定义一个函数式接口 */ @FunctionalInterface public interface GreetingService { void sayMessag

  • 写在前面 前面说过,判断一门语言是否支持函数式编程,一个重要的判断标准就是:它是否将函数看做是“第一等公民(first-class citizens)”。 函数是“第一等公民”,意味着函数和其它数据类型具备同等的地位——可以赋值给某个变量,可以作为另一个函数的参数,也可以作为另一个函数的返回值。 Java 8是通过函数式接口,赋予了函数“第一等公民”的特性。 本文将详细介绍Java 8中的函数式接

  • java 8引入了lambda表达式,lambda表达式实际上表示的就是一个匿名的function。 在java 8之前,如果需要使用到匿名function需要new一个类的实现,但是有了lambda表达式之后,一切都变的非常简介。 我们看一个之前讲线程池的时候的一个例子: //ExecutorService using class ExecutorService executorService

  • 什么是函数式接口(Functional Interface) 所谓的函数式接口,当然首先是一个接口,然后就是在这个接口里面只能有一个抽象方法。 补充下:方法也可以有具体默认实现逻辑,需要用default修饰 这种类型的接口也称为SAM接口,即Single Abstract Method interfaces。 函数式接口用途 它们主要用在Lambda表达式和方法引用(实际上也可认为是Lambda表

  • 函数式接口: 定义: 就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口,总体有点像匿名类 @FunctionalInterface: 该注解可加可不加,它是函数式接口语法检查注解的,当然最好是加上,毕竟你加上之后,代码的规范和可读性明显提高了. 详解: 通常我们写一个接口大致如下: public interface Animal { void eat();

 相关资料
  • 问题内容: 如何在Java中模拟函数式编程,特别是如何将函数映射到项目集合? 什么是最冗长和尴尬的方法? 问题答案: 在Java之前,所有的函数式编程尝试在Java中都会有些 冗长 和/或 笨拙 ,直到Java 8。 最 直接的 方法是提供一个接口(例如Guava的这种形式),并提供采用和调用该接口的各种方法(例如我认为您的方法应该执行的操作)。 不好的事情是,您需要使用匿名内部类来实现并经常这样

  • 问题内容: 我有一个hibernate映射的Java对象,其中充满了许多正常的可hibernate映射字段(例如字符串和整数)。 我向其中添加了一个新的嵌入式字段(该字段位于同一表中- 而不是映射),它是一个。我已经明确表示该字段可能实际上不包含任何内容(而不是每次访问它都必须进行处理)。 如何在文件中设置映射?我想hibernate来自动转换数据库到的,当它获取对象。它还应将的非空实例转换为的。

  • 本文向大家介绍详解JAVA 函数式编程,包括了详解JAVA 函数式编程的使用技巧和注意事项,需要的朋友参考一下 1.函数式接口 1.1概念: java中有且只有一个抽象方法的接口。 1.2格式: 1.3@FunctionalInterface注解: 与 @Override 注解的作用类似,Java 8中专门为函数式接口引入了一个新的注解: @FunctionalInterface 。该注 解可用于

  • 本文向大家介绍Java函数式编程(六):Optional,包括了Java函数式编程(六):Optional的使用技巧和注意事项,需要的朋友参考一下 选取单个元素 直觉来说选取单个元素肯定会比选取多个要简单得多,不过这里也存在一些问题。我们先看下一般的做法的问题是什么,然后再看下如何用lambda表达式来解决它。 我们先新建一个方法来查找一个以特定字母开头的元素,然后打印出来。 这个方法简直跟刚过去

  • 本文向大家介绍Java函数式编程(七):MapReduce,包括了Java函数式编程(七):MapReduce的使用技巧和注意事项,需要的朋友参考一下 译注:map(映射)和reduce(归约,化简)是数学上两个很基础的概念,它们很早就出现在各类的函数编程语言里了,直到2003年Google将其发扬光大,运用到分布式系统中进行并行计算后,这个组合的名字才开始在计算机界大放异彩(那些函数式粉可能并不

  • 本文向大家介绍Java函数式编程(九):Comparator,包括了Java函数式编程(九):Comparator的使用技巧和注意事项,需要的朋友参考一下 实现Comparator接口 Comparator接口的身影在JDK库中随处可见,从查找到排序,再到反转操作,等等。Java 8里它变成了一个函数式接口,这样的好处就是我们可以使用流式语法来实现比较器了。 我们用几种不同的方式来实现一下Comp

  • 注意!注意!注意! Java中一切皆对象,唯函数不算! Java 7以前, Java中只能通过笨拙冗长的匿名类来达到近似函数式编程的效果。 (Java 8引入了Lambda表达式) 过度使用Guava函数式编程会导致冗长、混乱、可读性差而且低效的代码。 如果你想通过函数式风格达成一行代码,致使这行代码长到荒唐,Guava团队会泪流满面。 请务必确保,当使用Guava函数式的时候,用传统的命令式做同

  • 本文向大家介绍Java函数式编程(五):闭包,包括了Java函数式编程(五):闭包的使用技巧和注意事项,需要的朋友参考一下 使用词法作用域和闭包 很多开发人员都存在这种误解,认为使用lambda表达式会导致代码冗余,降低代码质量。恰恰相反,就算代码变得再复杂,我们也不会为了代码的简洁性而在代码质量上做任何妥协,下面我们就会看到。 在前面一个例子中我们已经可以重用lambda表达式了;然而,如果再匹