当前位置: 首页 > news >正文

网站建设报表明细哪个网站建站好500平台

网站建设报表明细,哪个网站建站好500平台,品质培训的网站建设,旅游网页模板图片函数式接口 如果一个接口,只有一个抽象方法,该接口即为函数式接口。函数式接口,即可使用 Lambda 表达式。 如下面的接口 public interface Translate {void translate();}目前该接口的抽象方法为无参数无返回值 Lambda 表达式 无参无返回值…

函数式接口

如果一个接口,只有一个抽象方法,该接口即为函数式接口。函数式接口,即可使用 Lambda 表达式。
如下面的接口

public interface Translate {void translate();}

目前该接口的抽象方法为无参数无返回值

Lambda 表达式

无参无返回值的 Lambda 表达式写法

Translate translate1 = () -> {System.out.println("lambda表达式");
};

有参数,无返回值的 Lambda 表达式写法

// 有参,无返回值 lambda表达式
Translate translate = (int a,int b) -> {int c = a + b;System.out.println(c);
};

参数类型可以省略,因为编译器可以进行类型推断知道他的类型

// 有参,无返回值 lambda表达式
Translate translate = (a,b) -> {int c = a + b;System.out.println(c);
};

只有一个参数时,参数的小括号可以省略

Translate translate1 = a -> {System.out.println("lambda表达式");
};

只有单行语句时的表达式语法

只有单行语句时表达式的{}大括号可以省略

// 无参,无返回值,单行语句
Translate translate1 = () -> System.out.println("lambda表达式");// 有参,无返回值,单行语句
Translate translate = (a,b) -> System.out.println("a + b = " + (a + b));

其实有无返回值,对于 Lambda 表达式的写法并无太大的区别。无非就是有无 return 语句。但是,有返回值的方法,在只有单行语句时,{}大括号和return都可以省略

// 有参,有返回值,单行语句
Translate translate = (a,b) -> a + b;

Lambda 表达式使用作用域之外的局部变量

int c = 0;
// 有参,无返回值 lambda表达式
Translate translate = (a,b) -> a + b + c;

此时,变量c会是隐式final的,无法修改。

函数式接口

@FunctionalInterface

添加 @FunctionalInterface 注解,用于在编译时检测接口是否为函数式接口,如果不是,将会编译报错。

Java 内置的函数式接口

接口名对应函数说明
Consumer<T> 消费型void accept(T t);对泛型对象t进行相关操作,没有返回值
Supplier<T> 供给(生产)型T get();返回泛型对象
Function<T, R> 函数型R apply(T t);对泛型对象t进行相关操作,并返回泛型对象R
Predicate<T> 断言型boolean test(T t);对泛型对象t进行相关验证,并返回 boolean 验证结果

Consumer<T> 消费型

比如我们的实现为打印某个数

Consumer<Integer> c = (a) -> System.out.println(a);
c.accept(1);

Consumer<T> 中的 andThen 方法

此方法的作用为,可以将多个 Consumer 按顺序执行。表示为当前对象调用之后执行另一个Consumer

Consumer<Integer> c = (a) -> System.out.println("c:" + a);
Consumer<Integer> c1 = (a) -> System.out.println("c1:" + a);
c.andThen(c1).accept(1);

Supplier<T> 供给(生产)型

Supplier<Integer> s = () -> 20;
System.out.println(s.get());

Function<T, R> 函数型

Function<String,Integer> fun = (str) -> str.length();
System.out.println(fun.apply("aaa"));

Function<T, R> 中的 andThen 、compose 方法

  • andThen 同Consumer,此方法的作用为,可以将多个 Function 按顺序执行。表示为当前对象调用之后执行另一个Function
  • compose 与 andThen 方法相反,表示为当前对象调用之前执行另一个 Function

Predicate<T> 断言型

Predicate<Integer> p = t -> t > 20;
System.out.println(p.test(30));

方法引用

当要传递给Lambda体的操作,已经有实现的方法了,可以使用方法引用。前提是方法引用的方法的参数列表和返回值类型与 Lambda 表达式的一致。

方法引用可以看做是Lambda表达式深层次的表达。换句话说,方法引用就是Lambda表达式, 也就是函数式接口的一个实例,通过方法的名字来指向一个方法,可以认为是Lambda表达式的一个语法糖。

语法格式

构造方法:类名::new
静态方法:类名::方法名
成员方法:对象名::方法名

示例

Consumer<Integer> c = System.out::println;
// 上面写法等价于 
Consumer<Integer> c1 = a -> System.out.println(a);
Map<String,Integer> map = new HashMap<>();
map.put("key1",13);
Function<String,Integer> fn = map::get;
System.out.println(fn.apply("key1"));
http://www.15wanjia.com/news/160663.html

相关文章:

  • 大学生网站设计作品网络文化经营许可证怎么申请
  • 学习网站开发思路WordPress文章固定连接html
  • 如何设置手机网站主页东莞哪家公司做网站比较好
  • 做视频网站带宽要求山西省这房和城乡建设厅网站
  • 中国风网站模板下载余姚网站定制
  • html5做的网站百度风云榜电视剧排行榜
  • 深圳建设企业网站公司网站建设预付款如何付
  • 网站表格边框怎么做wordpress虾米
  • 建设网站建设哪里好wordpress传到ftp
  • 哈尔滨网站建设哪个好网站免费域名申请
  • wordpress图片广告插件网站搜索引擎优化教程
  • 查询网站备案显示划横线途牛网站建设功能需求分析
  • 电影网站的代理怎么做网站开发 erp系统开发
  • 使用本地主机做网站潍坊网站优化培训
  • 重庆八大员证书查询网站wordpress 页面设置不了标签
  • 昆明百度智能建站做网站外包公司名称大全
  • 连山建设局网站网站备案后可以修改吗
  • 品牌网站开发公司新闻 今天
  • 网站的功能建设wordpress内外网
  • 建站软件安卓百度直播平台
  • 网站制作自己自己建网址
  • 建设网站的4个根目录被删温州网页设计制作
  • oss可以做网站根目录吗有了域名如何建立网站
  • 怎么做关于易烊千玺的网站网站的网站建设
  • 如何做好网站的建设与维护wordpress 阿里短信
  • 网站开发工具有互联免费主机
  • 佛山 做网站公司明天正式解封
  • 嘉兴网站推广优化永久免费不收费的软件app
  • dede怎么做双语网站一般通过中间人转账是否违法
  • 哪个网站可以做计算机二级的题最新资讯热点