欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > Java学习_19_方法引用及异常

Java学习_19_方法引用及异常

2025/2/24 20:04:44 来源:https://blog.csdn.net/qq_41136689/article/details/141463377  浏览:    关键词:Java学习_19_方法引用及异常

文章目录

  • 前言
  • 一、方法引用
    • 方法引用实例
    • 引用静态方法
    • 引用成员方法
    • 引用构造方法
    • 使用类名引用成员方法
    • 引用数组的构造方法
    • 综合练习
  • 二、异常
    • 异常是什么
    • 异常的作用
    • 处理方案
      • 默认异常
      • 捕获异常
    • 异常对象的常用方法
    • 抛出异常
  • 总结


前言

博客仅记录个人学习进度和一些查缺补漏。
学习内容:BV17F411T7Ao


一、方法引用

方法引用实例

把已经有的方法拿过来用,当作函数式接口中抽象方法的方法体
可以引用的情况:
在这里插入图片描述
引用方式:

在这里插入图片描述
需要注意,引用的情况下应该能满足当前需求

其实就是类名点用方法名。其中::就是方法引用符,并且无需再额外写参数。
在这里插入图片描述

引用静态方法

类名::静态方法名
Integer::parseInt
在这里插入图片描述
使用stream流简化操作,map做类型转换:
在这里插入图片描述
想使用方法引用,需要确定是不是一个抽象方法,并且所引用的方法是否存在。很明显,Integer类已经提供了这个方法。
在这里插入图片描述
化简后:
在这里插入图片描述

引用成员方法

在这里插入图片描述

使用场景:过滤集合数据时

在这里插入图片描述
其中s表示集合中的每一个元素,返回值表示是否留下。
在这里插入图片描述
java中没有原生提供相应的过滤方法,所以自己写一个类提供该方法

在这里插入图片描述

方法引用:
在这里插入图片描述

如果是本类中的方法引用,需要注意静态方法是没有this的,引用的时候还是得new一个对象
在这里插入图片描述
一般情况下引用本类方法:
自己写在本类的非静态方法
在这里插入图片描述

方法引用
在这里插入图片描述

如果在父类中的方法引用
在这里插入图片描述

引用构造方法

本质是为了创建对象
在这里插入图片描述
可以使用方法引用的情况:
在这里插入图片描述
预置的两个构造方法都不满足传入参数类型,需要写一个传入参数为String的构造方法
在这里插入图片描述
注意,构造方法没有返回值,仅需保证调用了构造方法后会产生指定的对象。
在这里插入图片描述

使用类名引用成员方法

在这里插入图片描述
在这里插入图片描述
方法引用:
在这里插入图片描述
需要注意的是,toUpperCase方法没有传入参数。形参没有对应,但是仍然可以引用
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

引用数组的构造方法

在这里插入图片描述
数组底层也有自己的构造方法,例如下列方法是将集合中的元素抽取出来放到数组中
注意,toArray是终结方法
在这里插入图片描述
方法引用:
在这里插入图片描述

综合练习

在这里插入图片描述

        ArrayList<String> arrayList = new ArrayList<>();Collections.addAll(arrayList, "张三,23", "李四,24","王五,25");Student[] array = arrayList.stream().map(Student::new).toArray(Student[]::new);
    public static void main(String[] args) {ArrayList<String> arrayList = new ArrayList<>();Collections.addAll(arrayList, "张三,23", "李四,24","王五,25");List<Student> collect = arrayList.stream().map(Student::new).toList();ArrayList<Student> arrayList1 = new ArrayList<>(collect);String[] array = arrayList1.stream().map(StreamTest::StudentToString).toArray(String[]::new);for (String s : array) {System.out.println(s);}}public static String StudentToString(Student student) {return student.getName();}
    public static void main(String[] args) {ArrayList<String> arrayList = new ArrayList<>();Collections.addAll(arrayList, "张三,23", "李四,24","王五,25");List<Student> collect = arrayList.stream().map(Student::new).toList();ArrayList<Student> arrayList1 = new ArrayList<>(collect);String[] array = arrayList1.stream().map(StreamTest::StudentToString).toArray(String[]::new);for (String s : array) {System.out.println(s);}}public static String StudentToString(Student student) {return student.getName() + "-" + student.getAge();}

二、异常

异常是什么

本质是提示如何处理出现的异常
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

异常的作用

用来查询bug的关键参考信息,也可以作为方法内部的一种特殊返回值,以便通知调用者底层的执行情况
例如数组越界:
在这里插入图片描述

一般情况下:
在这里插入图片描述
人为返回异常:
在这里插入图片描述
例如:手动抛出
在这里插入图片描述

处理方案

默认异常

在这里插入图片描述
默认情况下,会停在出现异常的位置,并且在控制台打印

捕获异常

目
主要是为了让代码继续执行,为了可以继续执行就需要自行处理错误
例如:
在这里插入图片描述
在这里插入图片描述

1、如果try中没有遇到问题,那么不会执行catch内的代码。
2、如果try中遇到了多个问题,可以使用多个catch来捕获对应的异常,其中,父类异常如果写在前面会被优先相应。
3、如果try中产生的异常没有被捕获,就会直接抛出异常到控制台,后续的代码也不会被执行。
4、如果try中产生了异常并且被捕获了,try中剩余的代码不会执行,并直接跳转到catch。

异常对象的常用方法

对捕获的异常对象e,一些常用方法帮助我们了解异常的类型
在这里插入图片描述

其中,虽然printStackTrac方法是红色字体在控制台上,但是它仅仅是打印信息,不会停止代码的运行
在这里插入图片描述

抛出异常

在这里插入图片描述

例如:手动抛出异常
在这里插入图片描述
例如:提示可能会出现的异常

在这里插入图片描述

总结

在这里插入图片描述
异常的处理是项目中经常使用到的语法,因为不知道前端回传过来什么样的数据,不同的数据需进行不同的相应,例如之前写的学生管理系统,在输入指定以外的键位时需要给出对应的回应,或者在输入年龄时输入了String类型应该如何处理,都是异常处理需要考虑的问题

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词