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

信息网站 模板wordpress禁用react

信息网站 模板,wordpress禁用react,万网主机 网站重做,wordpress固定链接404 nginxJava8新特性1——函数式接口lambda表达式 注#xff1a;以下内容基于Java 8#xff0c;所有代码都已在Java 8环境下测试通过 目录#xff1a; Java8新特性1——函数式接口lambda表达式方法引用Stream 1. 函数式接口 如果在一个接口中#xff0c;有且只有一个抽…Java8新特性1——函数式接口lambda表达式 注以下内容基于Java 8所有代码都已在Java 8环境下测试通过 目录 Java8新特性1——函数式接口lambda表达式方法引用Stream 1. 函数式接口 如果在一个接口中有且只有一个抽象方法则该接口被称为函数式接口。如 interface Test {void test(); }注 可以在接口前使用 FunctionalInterface 注解判断这个接口是否是⼀个函数式接口。如 FunctionalInterface interface Test1 {//有且仅有一个抽象方法是函数式接口void test(); }FunctionalInterface interface Test2 {//有且仅有一个抽象方法是函数式接口void test();default void f() {} }FunctionalInterface interface Test3 {//没有抽象方法不是函数式接口编译器报错 }FunctionalInterface interface Test4 {//有多个抽象方法不是函数式接口编译器报错void test1();void test2(); }2. lambda表达式 2.1 lambda表达式作用 lambda表达式是一个匿名函数用于简化函数式接口的实现。 在Java中接口不能实例化但接口对象可以指向实现类对象。当没有实现类对象时可以通过匿名类的方式如 public class Main {public static void main(String[] args) {Test test new Test() {Overridepublic void f() {System.out.println(使用匿名函数的方式实现了函数式接口);}};test.f();} }FunctionalInterface interface Test {void f(); }使用匿名类的方式代码不是很简洁因此引入了lambda表达式如 public class Main {public static void main(String[] args) {Test test () - System.out.println(使用lambda表达式的方式实现了函数式接口);test.f();} }FunctionalInterface interface Test {void f(); }在使用lambda表达式之后代码变得简洁了很多因此可以说lambda表达式是和函数式接口相辅相成的。在上面的代码中lambda表达式实际做了以下三个工作 自动实现接口 Test test new Test();将 - 前的参数自动添加到抽象函数里面上面代码中抽象函数没有参数 void f();将 - 后的语句作为抽象函数的方法体 void f(){System.out.println(使用lambda表达式的方式实现了函数式接口); }2.2 lambda表达式语法格式 lambda表达式的格式如下 (参数1, 参数2, ……) - {方法体; }其中 参数要求和函数式接口中抽象方法的参数一致包括数量和类型以及顺序如果函数式接口中抽象方法有返回值则实现的时候也需要返回值 public class Main {public static void main(String[] args) {Test test (int x, int y) - {//参数、返回值与函数式接口中抽象方法一致return x y;};test.add(1, 2);} }FunctionalInterface interface Test {int add(int x, int y); }2.3 lambda表达式的精简 参数精简 参数类型可以省略若省略一个类型参数则所有的类型参数都要省略若只有一个参数则小括号可以省略若参数为0或者多于1个则小括号不可以省略 方法体精简 若方法体中只有一行代码则花括号可以省略若方法体中只有一行代码且是return语句则在省略大括号的时候还需要去掉return关键字若方法体中有多行代码或者使用了return语句则大括号不可以省略 public class Main {public static void main(String[] args) {//只有一个参数省略了小括号//只有一条return语句省略了花括号即return关键字Test test x - Math.exp(x);test.exp(1);} }FunctionalInterface interface Test {double exp(double x); }2.4 变量作用域 lambda表达式只可以访问外部变量但不能修改外部变量lambda表达式访问的外部变量一般都是声明为 final 的但也可以不用声明为 final 但该变量在声明后不能被修改lambda表达式中不允许声明一个与局部变量同名的参数或局部变量 public class Main {static final int a 0;public static void main(String[] args) {final int num1 10;int num2 20;//num2 40; //声明后不能被修改Test test1 x - {System.out.println(num1);//可以访问外部被声明为 final 的变量System.out.println(num2);//可以访问外部的普通变量//num1 20;//只能访问不能修改//num2 20;//只能访问不能修改//int num1 20;//不允许声明一个与局部变量同名的局部变量return Math.exp(x);};//num2 40; //声明后不能被修改test1.exp(1);//不允许声明一个与局部变量同名的参数//Test test2 num1 - Math.exp(num1);} }FunctionalInterface interface Test {double exp(double x); }3. 四大函数式接口 为了让开发者高效地使用函数式接口Java 8 在 java.util.function 包下提供了许多函数式接口以下四种是最为常见的 接口原型抽象方法备注Consumer T accept(T t)消费型接口Supplier T T get()供给型接口FunctionT, RR apply(T t)函数型接口Predicate T boolean test(T t)断言型接口 3.1 Consumer T 消费型接口 该接口只接收输入参数但不输出返回值消费对象只进不出。 接口原型 FunctionalInterface public interface ConsumerT {void accept(T t); }使用示例 import java.util.function.Consumer;public class Main {public static void main(String[] args) {ConsumerInteger acc (t) - System.out.println(t);//实现 Consumer 接口acc.accept(10);} }3.2 Supplier T 供给型接口 该接口只输出返回值但不接收输入参数生成对象只出不进。 接口原型 public interface SupplierT {T get(); }使用示例 import java.util.function.Supplier;public class Main {public static void main(String[] args) {SupplierInteger sup () - 10;//实现 Supplier 接口System.out.println(sup.get());} }3.3 FunctionT, R函数型接口 该接口既接收输入参数又输出返回值用于指定特定功能有进有出。 接口原型 FunctionalInterface public interface FunctionT, R {R apply(T t); }使用示例 import java.util.function.Function;public class Main {public static void main(String[] args) {FunctionInteger, String fun (x) - {//实现 Function 接口String out 输入的整数是 x;return out;};System.out.println(fun.apply(10));} }3.4 Predicate T 断言型接口 该接口既接收输入参数又输出返回值且返回值只能是布尔值用于条件判断有进有出。 函数原型 public interface PredicateT {boolean test(T t); }使用示例 import java.util.function.Predicate;public class Main {public static void main(String[] args) {PredicateInteger pre (x) - x % 2 0;//实现 Predicate 接口int a 10;if (pre.test(10)) {System.out.println(a 是偶数);} else {System.out.println(a 是奇数);}} }
http://www.tj-hxxt.cn/news/139234.html

相关文章:

  • 云浮源峰网站建设工作室地址苏州建设监督网站
  • 网站不备案可以用吗网站建设需求
  • 深圳做微信商城网站建设网站整体风格
  • 马尾区建设局网站室内设计就业前景如何
  • 山东高端网站建设无锡做网站设计的公司
  • 西樵网站制作南宁网络公司设计
  • 怎么做网站优企业网站设计开发
  • 网站群建设方案做seo前景怎么样
  • 广东哪有做网赌网站网站后台更新 前台看不到
  • 网站开发 票种朝阳网站建设开发
  • 网站建设需要什么研究条件WordPress修改模板相对路径
  • 做游戏自媒体视频网站大连建设银行网站
  • 免费建网站平台哪个好品牌策划大赛作品
  • 东莞网络推广建站没有网站 淘宝客
  • 安顺住房和城乡建设部网站折页彩页设计
  • 进度跟踪网站开发国内好的网站建设
  • 专门做旅游的视频网站如何编程软件
  • 网站维护提示新品发布会的目的
  • 有网站代码 如何建设网站衡水哪儿专业做网站
  • 云霄建设局网站网络推广渠道和方式
  • 网站模板样式网站开发如何收费
  • 做源码网站违法吗线上销售有哪些渠道
  • 网站搭建中转网站怎么做超链接
  • 网站建设 招聘需求嘉兴网站建设电话
  • 网站服务器分流怎么做电子商务网站开发方式
  • 建设银行网站每天几点更新帝国cms门户网站模板
  • 靓号网站开发烟台微网站
  • 如何查看网站页面大小网站运营风险分析
  • 出国看病网站开发商务网站建设实训报告1600字
  • 萝岗定制型网站建设商城源码开源