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

信誉比较好的商家可做网站莱芜金点子最新招聘兼职信息

信誉比较好的商家可做网站,莱芜金点子最新招聘兼职信息,网站规划与开发专业,wordpress设置关键词设置在编程中#xff0c;方法引用#xff08;Method Reference#xff09;是一种技术#xff0c;它让你能够直接引用一个现有的函数或方法#xff0c;而无需通过对象实例来调用。这种方法在函数式编程和高阶函数中非常有用#xff0c;因为它提供了简洁的方式来传递函数行为方法引用Method Reference是一种技术它让你能够直接引用一个现有的函数或方法而无需通过对象实例来调用。这种方法在函数式编程和高阶函数中非常有用因为它提供了简洁的方式来传递函数行为使代码更加灵活和可复用。 以下是方法引用的一些特点和用法 直接引用你可以创建一个方法引用它直接指向某个类的静态方法或实例方法。例如std::sort(myVector.begin(), myVector.end(), std::greaterint()) 中的 std::greaterint() 就是一个函数指针类型的引用它直接指向 greater 函数。 类型参数化方法引用可以接收类型参数如 [](const T t) - void { ... }这是一种通用的方法引用适用于任何接受 T 类型参数的函数。 Lambda表达式Java和C11引入了lambda表达式它们本质上就是方法引用的简化形式可以直接定义并使用匿名函数。 作为函数参数或返回值方法引用可以被用作其他函数的参数或者作为函数的返回值这样可以使接口设计更加简洁。 方法 以前学习的方法 引用 把已经有的反复拿过来用当做函数式接口中的抽象方法的方法体 引用处必须是函数接口 被引用的方法必须是已经存在的 被应用的方法的形参和返回值必须要和抽象方法保持一致 被引用的方法的功能要满足当前需求 改写 import java.util.Arrays; import java.util.Comparator;public class Main {public static void main(String[] args) {Integer arr[]{3,3,4,5,6,7};Arrays.sort(arr, new ComparatorInteger() {Overridepublic int compare(Integer o1, Integer o2) {return o2-o1;}});System.out.println(Arrays.toString(arr));} } 只有函数式接口能用Lambda表达式简化 import java.util.Arrays;public class Main {public static void main(String[] args) {Integer arr[]{3,3,4,5,6,7};Arrays.sort(arr, (Integer o1,Integer o2) - {return o2-o1;});System.out.println(Arrays.toString(arr));} } import java.util.Arrays;public class Main {public static void main(String[] args) {Integer arr[]{3,3,4,5,6,7};Arrays.sort(arr, (o1,o2) - o2-o1);System.out.println(Arrays.toString(arr));} } 方法引用改写条件 1.引用处需要是函数式接口 2.被引用的方法需要已经存在 3.被引用的方法的形参各返回值需要和抽象方法的形参和返回值保持一致 4.被引用的方法的功能需要满足当前需求 import java.util.Arrays;public class Main {public static void main(String[] args) {Integer arr[]{3,3,4,5,6,7};//表示引用Main类里的subtraction方法//把这方法作为抽象方法的方法体Arrays.sort(arr, Main::subtraction);System.out.println(Arrays.toString(arr));}public static int subtraction(int num1,int num2){return num2-num1;} } 小结 引用静态方法 格式 类名::静态方法 import java.util.ArrayList; import java.util.Collections; import java.util.Scanner; import java.util.function.Function;public class Main {public static void main(String[] args) {ArrayListStringlistnew ArrayList();Collections.addAll(list,1,2,3,4,5,6);//先写匿名内部类//自动生成方法体list.stream().map(new FunctionString, Integer() {Overridepublic Integer apply(String s) {int iInteger.parseInt(s);return i;}}).forEach(s - System.out.println(s));} } 方法引用简化 import java.util.ArrayList; import java.util.Collections;public class Main {public static void main(String[] args) {ArrayListStringlistnew ArrayList();Collections.addAll(list,1,2,3,4,5,6);list.stream().map(Integer::parseInt).forEach(s - System.out.println(s));} } 引用成员方法 import java.util.ArrayList; import java.util.Collections;public class Main {public static void main(String[] args) {ArrayListStringlistnew ArrayList();Collections.addAll(list,张三,张思锐,3,4,5,6);list.stream().filter(s - s.startsWith(张)).filter(s -s.length()3).forEach(s - System.out.println(s));} } import java.util.ArrayList; import java.util.Collections; import java.util.function.Predicate;public class Main {public static void main(String[] args) {ArrayListStringlistnew ArrayList();Collections.addAll(list,张三,张思锐,张三丰,多多,李四,王五);list.stream().filter(new PredicateString() {Overridepublic boolean test(String s) {return s.startsWith(张)s.length()3;}}).forEach(s - System.out.println(s));} } 方法引用 1.写在其他类当中 public class Judge {public boolean judge(String s){return s.startsWith(张)s.length()3;} }import java.util.ArrayList; import java.util.Collections;public class Main {public static void main(String[] args) {ArrayListStringlistnew ArrayList();Collections.addAll(list,张三,张思锐,3,4,5,6);//普通的成员方法要对象来调用//这里也可以先创建对象再去调用list.stream().filter(new Judge()::judge).forEach(s- System.out.println(s));} } 2.写在本类当中 静态方法中是没有this关键字的 因为Main默认是静态的 所以要创建本类的对象 格式 对象::成员方法 import java.util.ArrayList; import java.util.Collections;public class Main {public static void main(String[] args) {ArrayListStringlistnew ArrayList();Collections.addAll(list,张三,张思锐,3,4,5,6);//普通的成员方法要对象来调用//这里也可以先创建对象再去调用list.stream().filter(new Judge()::judge).forEach(s- System.out.println(s));}public static boolean judge(String s){return s.length()3s.startsWith(张);} } 引用处不能是静态方法 import java.util.ArrayList; import java.util.Collections;public class Main {public void main(String[] args) {ArrayListStringlistnew ArrayList();Collections.addAll(list,张三,张思锐,3,4,5,6);//普通的成员方法要对象来调用//这里也可以先创建对象再去调用list.stream().filter(this::judge).forEach(s- System.out.println(s));}public boolean judge(String s){return s.length()3s.startsWith(张);} } 引用构造方法 为什么要引用构造方法 是为了创建对象 import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.function.Function; import java.util.stream.Collectors;public class Main {public static void main(String[] args) {ArrayListStringlistnew ArrayList();Collections.addAll(list,张三,12,李四,13,王五,15);//封装成Student类对象,并且放到集合里面去、ListStudentnewlistlist.stream().map(new FunctionString, Student() {Overridepublic Student apply(String s) {String arr[]s.split(,);return new Student(arr[0],Integer.parseInt(arr[1]));}}).collect(Collectors.toList());System.out.println(newlist);} } 构造方法运行完后对象就已经有了 在javabean类里写方法 注意参数类型要和调用处一致new处 所以在javabean类里要写一个只有一个形参的方法 Student::new 表示使用了Student类里的构造方法并获得了对象 用类名引用成员方法 import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.function.Function; import java.util.stream.Collectors;public class Main {public static void main(String[] args) {ArrayListStringlistnew ArrayList();Collections.addAll(list,aaa,bbb,ccc,ddd);list.stream().map(new FunctionString, String() {Overridepublic String apply(String s) {return s.toUpperCase();}}).forEach(s - System.out.println(s));} } 用类名引用成员方法改写 import java.util.ArrayList; import java.util.Collections;public class Main {public static void main(String[] args) {ArrayListStringlistnew ArrayList();Collections.addAll(list,aaa,bbb,ccc);list.stream().map(String::toUpperCase).forEach(s - System.out.println(s));} } 被引用方法的形参和返回值要和抽象方法中的形参和返回值一致 方法引用的规则 是类名引用成员方法独有的 需要有函数式接口 被引用的方法必须已经存在 被引用方法的形参需要和抽象方法的第二个形参到最后一个形参保持一致返回值需要保持一致 拿着流中的每一个数据去调用String类中的toUpperCase方法 方法的返回值就是转换之后的结果 局限性 不能引用所有类中的成员方法 是跟抽象方法的第一个参数(形参)有关这个参数是什么类型的就只能引用这个类中的方法 引用数组的构造方法 数组是没有构造方法的 但是有一个专门描述数组的类有构造方法 import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.stream.Collectors;public class Main {public static void main(String[] args) {ArrayListStringlistnew ArrayList();Collections.addAll(list,张三,李四,王五);String[] array list.stream().toArray(String[]::new);for(String s:array)System.out.println(s);} } 总结 个人号推广 博客主页 多多!-CSDN博客 Web后端开发 https://blog.csdn.net/qq_30500575/category_12624592.html?spm1001.2014.3001.5482 Web前端开发 https://blog.csdn.net/qq_30500575/category_12642989.html?spm1001.2014.3001.5482 数据库开发 https://blog.csdn.net/qq_30500575/category_12651993.html?spm1001.2014.3001.5482 项目实战 https://blog.csdn.net/qq_30500575/category_12699801.html?spm1001.2014.3001.5482 算法与数据结构 https://blog.csdn.net/qq_30500575/category_12630954.html?spm1001.2014.3001.5482 计算机基础 https://blog.csdn.net/qq_30500575/category_12701605.html?spm1001.2014.3001.5482 回忆录 https://blog.csdn.net/qq_30500575/category_12620276.html?spm1001.2014.3001.5482
http://www.zqtcl.cn/news/946643/

相关文章:

  • 大连哪里有手机自适应网站建设网站开发层次
  • 网站首页的浮窗怎么做美食网站程序
  • 淮北网站建设建设银行福州分行招聘网站
  • c 网站开发 pdf济南集团网站建设报价
  • 做网站找哪家公司好中国网络优化推广
  • 创建网站目录结构应遵循的方法dz旅游网站模板
  • 我看别人做系统就直接网站下载软件外贸物流流程
  • 手机微信网站南县网站定制
  • 做字幕网站重庆seo代理价格
  • 长春公司做网站找哪个公司好英文网站google推广
  • 潍坊网站建设方案推广官方网站如何建设
  • 设计网站的公司名称苏州建设人才网官网
  • 河南网站推广优化公司wordpress搭建vip下载站
  • 做网站拉客户有效吗网络宣传渠道
  • 制作深圳网站建设四川广安网站建设
  • 网站服务器服务商wordpress特效主题
  • 大型大型网站制作wordpress产品相册
  • 古董做推广哪个网站好租空间开网站
  • 巴中网站建设开发公司网站上传在空间哪里
  • 哈尔滨网站建设赚钱么宁波大型网站制作
  • 自助网站搭建群晖搭建的wordpress外网访问
  • 社区网站建设申请报告WordPress评论通知邮箱
  • 佛山网站建设技术托管建设网站容易吗
  • 网站开发的层级结构iis6.0如何做网站301
  • 做旅游那些网站好个人博客怎么做
  • 中国最好网站建设公司网站前台做好之后再怎么做
  • 焦作整站优化app开发报价单及方案
  • 网站开发合同验收怎样建立网站 优帮云
  • 池州哪家做网站wordpress方小程序主题
  • 免费建设网站入驻七牛云存储wordpress