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

龙岩做网站开发价格网页设计素材怎么保存到文件夹

龙岩做网站开发价格,网页设计素材怎么保存到文件夹,海外营销方案,艺术家个人网站设计前言 书接上文#xff0c;上一篇博客讲到了lambda表达式的应用场景#xff0c;本篇接着将java8实战第三章的总结。建议读者先看第一篇博客 其他函数式接口例子 上一篇有讲到Java API也有其他的函数式接口#xff0c;书里也举了2个例子#xff0c;一个是java.util.functi…前言 书接上文上一篇博客讲到了lambda表达式的应用场景本篇接着将java8实战第三章的总结。建议读者先看第一篇博客 其他函数式接口例子 上一篇有讲到Java API也有其他的函数式接口书里也举了2个例子一个是java.util.function.ConsumerT, 定义了accpet抽象方法接受泛型T对象没有返回一个是java.util.function.FunctionT,R定义了apply方法接受一个泛型T对象返回泛型R对象 用consumer模拟forEach方法  FunctionalInterface public interface ConsumerT{void accept(T t); } public static T void forEach(ListT list, ConsumerT c){\for(T i: list) {c.accept(i);} } forEach(Arrays.asList(1,2,3,4,5),(Integer i)-System.out.println(i)); 用Function来模拟map方法 FunctionalInterface public interface FunctionT, R{R apply(T t); } public static T, R ListR map(ListT list, FunctionT, R f){\ListR result new ArrayList();for(T s:list){result.add(f.apply(s));}return result; } ListInteger lmap( Arrays.asList(lambdas,in,action), (String s)-s.length()); 常用的函数式接口 因为很多泛型函数式接口如PredicateTConsumerT, 其中T只能绑定要引用类型(如ByteInteger,Object)不能绑定到原始类型(如intdoublebytechar)所以最后一栏有原始类型特化对比一下例子 也就是说IntPredicate是当Tint原始类型的特殊情况。 public interface IntPredicate{boolean test(int t); }IntPredicate evenNumbers (int i) - i % 2 0;evenNumbers.test(1000);PredicateInteger oddNumbers (Integer i) - i % 2 1;oddNumbers.test(1000); lambda及函数式接口例子 异常捕获的处理 由于任何函数式接口都不允许抛出受检异常所以需要在lambda表达式抛出异常如 FunctionBufferedReader, String f (BufferedReader b) - {try{return b.readline();}catch(IOException e) {throw new RuntimeException(e);}} 使用局部变量 lambda可以没有限制地捕获实例变量和静态变量但是局部变量必须显式声明为final或者事实上是final如下面代码无法编译因为portNumber变量被赋值两次 int portNumber 1337 Runnable r () - System.out.println(portnumber); portNumber 31337; 这一限制其实背后是因为实例变量是存储在堆上而局部变量是保持在栈上如果lambda可以直接访问局部变量而且lambda是在一个线程中使用的则使用lambda的线程可能会在分配该变量的线程将这个变量收回以后去访问该变量。 方法引用  inventory.sort(Apple a1 Apple a2) - a1.getWeight().compareTo(a2.getWeight());//使用方法引用 inventory.sort(comparing(Apple::getWeight)); 实际上方法引用是lambda的一种快捷写法基本思想就是如果一个lambda代表只是“直接调用这个方法”那么最好还是用名称去调用它而不是去描述如何调用它。 直观一点可以认为 Apple::getWeight 等于 (Apple a) - a.getWeight() 书本也举了一些例子 总结方法引用就是lambda只调用特定方法时候一种快捷写法上述的例子中lambda主体只有调用一个函数。 如何构建方法引用 方法引用有三类 1.指向静态方法的方法引用如Integer的parseInt方法写作Integer::parseInt 2.指向任意类型实例方法的方法引用(如string的length方法写作String::length) 3.指向现有对象的实例方法的方法引用(假设有一个局部变量expensiveTransaction用于存放Transanction类型的对象它支持实例方法getValue, 那么你就可以写expensiveTransaction::getValue) 书中还有图来表达这三类 构造函数引用 对于一个现有构造函数可以利用它的名称和关键字new来创建它的一个应用ClassName::new,它的功能与指向静态方法的引用类似。假设一个构造函数没有参数适合Supplier的签名()-Apple SupplierApple c1 Apple::new; //指向默认Apple()的构造函数 Apple a1 c1.get(); //产生一个新的apple等价于SupplierApple c1 () - new Apple(); Apple a1 c1.get(); //产生一个新的apple如果构造函数是Apple(Integer weight), 那么它就适合Function接口的签名 FunctionInteger, Apple c2 Apple::new; //指向Apple(Integer weight)的构造函数 Apple a2 c2.apply(110); //输入重量产生一个新的apple等价于FunctionInteger Apple c2 (weight) - new Apple(weight); Apple a2 c2.get(); //产生一个新的apple以此类推如果有两个参数就可以用BiFunction接口那么如果多个参数那么就需要自己构造了可以参考第一篇的构造一个接口。 最后有个有趣的应用将上面知识点串在一起比如说给定一个水果名称和重量创建一个水果的实例我个人想到最简单粗暴的方式写if/else语句判断水果名称然后就是new不同的水果当然也可以结合上面知识点将new这个起始动作还没new放在map中实际要用时候再apply. static MapString, FunctionInteger, Fruit map new HashMap(); static {map.put(apple, Apple::new);map.put(orange, Orange::new); //etc... }public static Fruit giveMeFruit(String fruit, Integer weight) {return map.get(fruit.toLowerCase()).apply(weight); } 第三章还有最后的实战部分放到最后一篇讲。 参考文献 《java8 实战》
http://www.dnsts.com.cn/news/134054.html

相关文章:

  • 重庆免费网站建站模板宁波seo外包推广
  • 哈尔滨网站提升排名志丹网站建设
  • 网站怎么做运营推广怎么自己做游戏软件
  • 网站网络推广策略和电子商务怎么建个人网页
  • 做网站商城前景怎么样成都网站建设哪家
  • 网站建设下一步打算成都餐饮网站建设
  • 我有服务器和模板怎么做网站wordpress删除所有文章
  • 平面设计能干一辈子吗上海优化排名公司
  • 刚开始做网站布局很吃力 怎么办泸州公司做网站
  • 免费网站大全下载从传播的角度
  • 十大免费不用收费的网站做网站 赚钱多吗
  • 网站建设百度索引鞋网站建设
  • 网站的管理系统进出长春今天最新通知
  • 建立个人网站代码园林绿化东莞网站建设
  • 一站式外贸综合服务平台win2012 iis 部署网站
  • 爱心捐赠网站怎么做学生个人网页制作主题
  • 橱柜衣柜做网站网站建设的常见问题
  • seo外贸网站建设设计师服务平台鱼巴士有哪些网站
  • 网站建设项目售后服务承诺百度seo排名优化公司推荐
  • 婚恋网站开发平台代理招商做网站高校视频
  • 卖产品怎么做网站电影资源采集网站咋做
  • 电子商务网站开发设计案例—易趣网电子商务网站台州关键词优化价格
  • 微信微网站 留言板长沙网站建设软件
  • 12306网站 制作赛盈分销平台
  • 什么网站做简历最好找别人做网站都需要注意啥
  • 进入百度搜索网站电商哪个平台销量最好
  • 南京做网站公司哪家好成都装修全包价格表
  • 河北建设厅注册中心网站首页wordpress当前没有可用的导入工具
  • 大足专业建站公司互联网商城建设
  • 域名怎么卖出去烟台seo做的好的网站