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

随机网站生成器wordpress恢复边栏

随机网站生成器,wordpress恢复边栏,wordpress修改个人头像,168义乌加工网一.什么是行为参数化呢 说白了就是将一段行为当作参数传入一个方法中呗#xff0c;那么这段行为是什么呢#xff1f; 答#xff1a;那也是一个方法咯。 Java在1.8版本引入了行为参数化的概念#xff0c;首先#xff0c;我们先看一小段代码 public class test { public sta…一.什么是行为参数化呢 说白了就是将一段行为当作参数传入一个方法中呗那么这段行为是什么呢 答那也是一个方法咯。 Java在1.8版本引入了行为参数化的概念首先我们先看一小段代码 public class test { public static void main(String[] args){ Consumer consumer new Consumer() { Override public void accept(String s) { System.out.println(s); } }; show(consumer ,hello world); }public static void show(ConsumerString consumer,String text){consumer.accept(text); } 复制代码 } 输出结果当然是hello world 啦。 可是你想这有什么呢不就是写了一个Consumer接口然后写一个匿名类重写他的accept方法然后带入Consumer到show方法调用它咩Java没更新前也可以这样啊只不过是传参了一个对象然后在方法内调用了对象的方法。 那么我们再来看看下面这段代码看看它和上面的代码有什么不同 public class test { public static void main(String[] args){ /Consumer consumer new Consumer() { Override public void accept(String s) { System.out.println(s); } };/ show(System.out::println ,hello world); }public static void show(ConsumerString consumer,String text){consumer.accept(text); } 复制代码 } 注意代码中3到8行已经注释了哦。 现在看看:show方法接受一个Consumer对象和字符串然后调用对象的accept方法这里都没变可是著方法中调用show方法的时候传递的第一个参数不再是Consumer对象了而是System.out::println而这是什么意思呢 System.out::println 是方法引用方法引用的格式就是类名::方法名 或者 对象名::成员方法名 我们都知道在方法重写和重载中我们是怎么做的呢在子类中写一个和主类中被重写方法方法名相同、参数类型、顺序相同的方法那jdk是根据什么来判断是否是重写或者重载呢没错就是靠函数签名来判断的就比如上面代码中的show方法它的函数签名就是名为show、接受两个参数并且第一个参数是Consumer类型、第二个参数是String类型的函数如果返回类型相同则是重写否则是重载。Java根据你的方法引用来确定你的方法签名和返回类型如果和形参中Consumer对象中的方法相同的话就可以使用。 那么我们回到代码中去我们在主方法中调用show方法时传入的第一个参数就是一个无返回值接受一个泛型参数的方法签名的方法引用。 你也可以传入其他方法进去只要方法签一致就可以啦。就像下面一样 public class test { public static void main(String[] args){ /Consumer consumer new Consumer() { Override public void accept(String s) { System.out.println(s); } };/ test one new test(); show(one::otherMethod ,hello world); }public void otherMethod(T t){int i 0;System.out.println(i t.toString()); }public static void show(ConsumerString consumer,String text){consumer.accept(text); } 复制代码 } 结果是输出0hello world 你也可以将show方法的第二个参数换成一个集合然后在第一个参数中传入其他方法引用来对集合进行操作哦。 在上面我们说到在带哦用show方法时传入的方法引用的方法签名、返回类型要和Consumer对象中方法的一致那么这个Consumer到底是什么呢它的内部只有一个方法吗如果有多个方法的话怎样根据传入的方法引用和他的众多方法比较呢 答Consumer其实是一个接口一个函数式接口话不多说直接上源码 package java.util.function; import java.util.Objects; FunctionalInterface public interface Consumer { void accept(T t);default ConsumerT andThen(Consumer? super T after) {Objects.requireNonNull(after);return (T t) - { accept(t); after.accept(t); }; } 复制代码 } 大家看是不是感觉有些不对呢Java接口明明不能所有实现方法的现在却多了一个default方法被实现嘿嘿这是Java8的新特性这个我会在之后的帖子中继续和大家分享。大家要注意的是FunctionalInterface这个注解它表明这个接口是一个函数式接口函数式接口的定义就是一个有且只有一个抽象方法但是可以有多个非抽象方法的接口。非抽象方法就是default方法可以有多个但是抽象方法只能有一个那么上面关于传入方法引用怎样匹配方法签名和返回值的疑问你们理解了吗 就是说在上面的例子中我在show方法定义的Consumer中只有一个抽象方法accept他是一个无返回值接受一个泛型参数的方法而我在调用show方法的时候也传入了和accept方法返回值一致参数相同的方法引用这就是方法重写在上面的例子中我传入System.out::println时就是无形之中创建了一个匿名类然后重写了他的accept方法重写的方法就是System.out.println()方法。神奇咩嘿嘿... 等等还没完...Consumer接口提供一个无返回值类型接受一个参数的抽象方法供大家使用那么如果我有其他需求呢假如我需要一个有返回值的抽象方法供我使用呢 别急Java提供了一系列函数式接口来供我们按照需求使用如果没有自己需要的接口的话我们也可以自己写一个函数式接口来使用。 函数式接口 函数描述符 Predicate T-boolean Consumer T-void FunctionT,R T-R Supplier ()-T UnaryOperator T-T BinaryOperator (T,T)-T BiPredicateL,R (L,R)-boolean BiConsumerT,U (T,U)-void BiFunctionT,U,R (T,U)-R 函数描述符是什么呢这就要说到Lambda表达式了在下一篇博客中我会讲解。本人是小白大学生一枚如有不对或者不当之处还请各位前辈指点嘿嘿 转载于:https://juejin.im/post/5c39af8a518825265c2fd86a
http://www.yutouwan.com/news/190855/

相关文章:

  • 网站开发建设的步骤做静态网站的步骤
  • 网站品牌建设方案嘉兴建设规划网站
  • php图书管理系统网站开发企业网站制作公司有哪些
  • 青岛做网站方案南昌网站seo多少钱
  • 做网站协议书新手学做网站要多久
  • 国内 响应式网站yole市场调研公司
  • 模板网站五金wordpress怎么清缓存
  • 合肥建设银行招聘网站长沙建设信息中心网站
  • 寺庙网站建设方案网页制作用什么工具
  • 好的响应式网站建筑设计网站国外
  • 网站建设玖金手指排名12seo优
  • 如何更改网站图标qq炫舞做字网站
  • 中小企业建网站注意微信做单子的网站源码
  • 做母婴产品的网站建材网络销售平台有哪些
  • 简约网站后台重庆网页开发
  • 智慧团建网站网址福州微信网站建设
  • 备案的网站名称能重复备案吗吴忠网站建设多少钱
  • 有免费的网站服务器吗如何设计商务网站
  • vs2008做网站单位网站建设 管理制度
  • 怎么建com的网站什么网站招聘外国人做兼职
  • 专业网站建设排名友情链接你会回来感谢我
  • 北京十大网站建设公司网站界面设计和ios移动界面设计的区别
  • 风铃做的网站能否推广网址导航app大全
  • 英文都不懂 学网站建设维护难吗中国机械加工网18易5下2拉i
  • 1280的界面网站做多宽网站开发地图导航页面
  • 如何学好网站开发南宁做网站科技公司
  • 太原网站定制电子商务系统分析报告
  • 文化传播公司网站模版浙江交工宏途交通建设有限公司网站
  • 可以做公众号背景图的网站网站建设公司 技术评估
  • asp 大型网站开发企业网站注销流程