方法引用 异常 file
目录
一.方法引用
1.方法引用概述
2.引用静态方法
3.引用成员方法
i.引用其他成员方法
ii.引用本类成员方法
iii.引用父类成员方法
4.引用构造方法
5.其他调用方式
i.使用类名引用成员方法
ii.引用数组的构造方法
二、异常
1.异常的作用
2.异常的处理方式
i.JVM默认的处理方式
ii.自己处理(捕获异常)
iii.抛出异常
iiii.异常中的常用方法
三、File
1.File的构造方法
2.File的成员方法
一.方法引用
1.方法引用概述
eg:
表示引用run1类里面的sxxxx方法
把这个方法当做抽象方法的方法体
::是方法引用符
//方法引用Integer[] arr={4,3,1,6,2,7,8,5};Arrays.sort(arr,run1::subtraction);System.out.println(Arrays.toString(arr));}public static int subtraction(int num1,int num2){return num2-num1;}}

2.引用静态方法
1.方法需要已经存在
2.方法的形参和返回值需要跟抽象方法的形参和返回值保持一致
3.方法的功能需要把形参的字符串转换成整数
eg:
ArrayList<String> list10 = new ArrayList<>();Collections.addAll(list10, "1","4","3","2","6");list10.stream().map(Integer::parseInt).forEach(s->System.out.println(s));
3.引用成员方法
格式:对象::成员方法
1.其他类:其他类对象::方法名
2.本类:this::方法名(引用出处不能是父类方法)
3.父类:super::方法名
i.引用其他成员方法
1.eg
public class run2 {public static void main(String[] args) {ArrayList<String> list1=new ArrayList<>();Collections.addAll(list1,"张ad","刘df","张ty","周kdh","fjd");list1.stream().filter(new fangfa2()::findzhnag).forEach(s -> System.out.println(s));}}//***************************public class fangfa2 {public boolean findzhnag(String s){return s.startsWith("张")&&s.length()==3;}
}
ii.引用本类成员方法
2.eg:静态方法中是没有this的
public class run2 {public static void main(String[] args) {ArrayList<String> list1=new ArrayList<>();Collections.addAll(list1,"张ad","刘df","张ty","周kdh","fjd");list1.stream().filter(new run2()::findzhnag).forEach(s -> System.out.println(s));}public boolean findzhnag(String s){return s.startsWith("张")&&s.length()==3;}
}
iii.引用父类成员方法
略
4.引用构造方法
格式 :类名::new
范例:Student::new

eg1:
//匿名内部类 List<Student> newlist1 = list1.stream().map(new Function<String, Student>() {@Overridepublic Student apply(String s) {String[] arr = s.split(",");String name = arr[0];int age = Integer.parseInt(arr[1]);return new Student(name, age);}}).collect(Collectors.toList());//lambdaList<Student> new2list1 = list1.stream().map(s -> new Student(s.split(",")[0], Integer.parseInt(s.split(",")[1]))).collect(Collectors.toList());
e:2:
//引用构造方法List<Student> new3list1 = list1.stream().map(Student::new).collect(Collectors.toList());System.out.println(new3list1);//其中Strudent这个类里面要加上public Student(String str) {String[] arr = str.split(",");this.name = arr[0];this.age = Integer.parseInt(arr[1]);}
为什么要加:因为被引用的方法的形参和返回值,需要跟抽象方法的形参返回值保持一致
从eg1中的匿名内部类看出
@Overridepublic Student apply(String s) {
是有一个String s的,所以这时需要再Student类中构造一个
public Student(String str) {
函数,str表示流里面的数据
5.其他调用方式
i.使用类名引用成员方法
格式:类名::成员方法
范例:String::substring
练习 :集合里面一些字符串,要求变成大写后进行输出
eg:
ArrayList<String> list2=new ArrayList<>();Collections.addAll(list2,"aaa","bbb","ccc","ddd");list2.stream().map(String::toUpperCase).forEach(s -> System.out.println(s));
意思是:第一个参数是什么类,就可以直接引用这个类里面跟后面参数跟抽象方法一样的成员方法。这也就是为什么形参不一致也可以,一个有一个形参一个无形参。就是没有第二个参数,说明引用方法是无参的
局限性:1.不能阴影所有类中的成员方法。2.是跟抽象方法的第一个参数有关,这个参数是什么类型的,那么就只能应用这个类中的方法。
ii.引用数组的构造方法
格式:数据类型[ ]::new
范例:int[ ]::new
练习:集合中存储一些整数,收集到数组当中
ArrayList<Integer> list3=new ArrayList<>();Collections.addAll(list3,1,2,3,4);Integer[] arr = list3.stream().toArray(Integer[]::new);System.out.println(Arrays.toString(arr)); 细节:数组的类型需要和流中的数据类型保持一致
二、异常
1.异常的作用



异常作用一:异常是用来查询bug的关键参考信息
异常作用二:异常可以作为方法内部的一种特殊返回值,以便通知调用者底层的执行情况
2.异常的处理方式
i.JVM默认的处理方式
把异常名称,原因及位置等信息输出在了控制台,程序停止,异常下面的不会再执行
ii.自己处理(捕获异常)
try{//可能出现异常的代码}catch(异常类名 变量名){//异常的处理代码} 目的:当代码出现异常时,可以让程序继续往下执行
注意:如果try中没有遇到问题,会吧try里面的全部执行完毕不会执行catch里面的代码,只有出现异常才会执行catch
注意:如果try里面有多个异常,要写多个catch与之对应,细节:如果要捕获多个异常,这些异常如果存在父子关系的话,那么父类一定要写在下面
注意:如果try中遇到的问题没有被捕获,相当于try....catch的代码白写了,最终还是会交给虚拟机处理(默认处理方式)
注意:try中遇到了问题,那么try下面的其他代码不会执行,直接跳转到相对应的catch,如果没有相对应的catch与之匹配,则交给虚拟机处理
iii.抛出异常

iiii.异常中的常用方法
Throwable的成员方法

//快捷键生成,ctrl alt+t
三、File
1.File的构造方法


2.File的成员方法












相关文章:
方法引用 异常 file
目录 一.方法引用 1.方法引用概述 2.引用静态方法 3.引用成员方法 i.引用其他成员方法 ii.引用本类成员方法 iii.引用父类成员方法 4.引用构造方法 5.其他调用方式 i.使用类名引用成员方法 ii.引用数组的构造方法 二、异常 1.异常的作用 2.异常的处理方式 i.JVM…...
比较(六)利用python绘制径向柱图
比较(六)利用python绘制径向柱图 径向柱图(Circular Barplot)简介 径向柱图基于同心圆网格来绘制条形图,虽然不如普通条形图表达准确,但却有抓人眼球的效果。其衍生的南丁格尔玫瑰图则广为人知。 快速绘制…...
为什么需要重写equals和如何重写equals
首先先看Java中的 ,比较的两个对象的地址值。 如果是基本数据类型,那么就是比较的是值。 如果是引用数据类型,比较的就是地址. object类中的equals方法也是用的; 所以要比较两个对象的大小,去调用默认的equals方法…...
C#字符串操作:判断一个字符串是否存在于另一个字符串按特定字符分割后的子字符串中的几种方法
要判断一个字符串是否存在于另一个字符串按特定字符分割后的子字符串中,可以使用以下几种方法: 方法一:使用Split和Array.Exists 你可以使用 Split 方法将字符串分割成子字符串数组,然后使用 Exists方法检查目标字符串是否在数组…...
Hi3861 OpenHarmony嵌入式应用入门--MQTT
MQTT 是机器对机器(M2M)/物联网(IoT)连接协议。它被设计为一个极其轻量级的发布/订阅消息传输 协议。对于需要较小代码占用空间和/或网络带宽非常宝贵的远程连接非常有用,是专为受限设备和低带宽、 高延迟或不可靠的网络而设计。这些原则也使该协议成为新兴的“机器…...
[22] Opencv_CUDA应用之 使用背景相减法进行对象跟踪
Opencv_CUDA应用之 使用背景相减法进行对象跟踪 背景相减法是在一系列视频帧中将前景对象从背景中分离出来的过程,它广泛应用于对象检测和跟踪应用中去除背景 背景相减法分四步进行:图像预处理 -> 背景建模 -> 检测前景 -> 数据验证 预处理去除噪声背景建模,以便与…...
Maven在Windows中的配置方法
本文介绍在Windows电脑中,下载、配置Maven工具的详细方法。 Maven是一个广泛使用的项目管理工具,主要针对Java项目,但也可以用于其他类型的项目;其由Apache软件基金会维护,旨在简化和标准化项目构建过程,依…...
一、redis-万字长文读懂redis
高性能分布式缓存Redis `第一篇章`1.1缓存发展史&缓存分类1.1.1 大型网站中缓存的使用带来的问题1.1.2 常见缓存的分类及对比与memcache对比1.2 数据类型选择&应用场景1.2.1 string1.2.2 hash1.2.3 链表1.2.4 set1.2.5 sortedset有序集合类型1.2.6 总结1.3 Redis高级应…...
搞清楚[继承],易如反掌
穷不失义,达不离道。——孔丘《论语》 继承 1、简单理解2、继承2、1、继承的概念2、2、继承定义2、3、基类和派生类对象赋值转换2、4、继承中的作用域2、5、派生类默认成员函数2、6、继承中的特点2、6、1、友元2、6、2、静态成员2、6、3、菱形继承及菱形虚拟继承 3、…...
Perl 语言入门学习指南:探索高效脚本编程的奥秘
引言 Perl,全称Practical Extraction and Report Language,是一种功能强大的编程语言,特别擅长于文本处理、报告生成以及系统自动化管理任务。自1987年诞生以来,Perl凭借其灵活性、强大的内置功能库和广泛的社区支持,…...
【HTML】-解决页面内容无法选择、复制问题
目录 1、网页内容无法选中 1.1、问题原因 1.2、解决脚本 1.2.1、开启控制台窗口 1.2.2、执行脚本命令 2、内容复制弹出阻止框 2.2、解决脚本 1、网页内容无法选中 1.1、问题原因 今天在访问某一网站平台,需要将内容进行选择、复制时发现不可使用。 在使用…...
C#中委托与事件
一、委托 在面向对象中,我们可以将任何数据类型作为参数传递给方法,能否将一个方法作为参数传递给另一个方法?C#中通过委托可以实现将方法作为参数进行传递。 1.1概念 委托是一种引用类型,它可以用于封装并传递方法作为参数。委…...
通用后台管理(二)——项目搭建
目录 前言 一、安装vue-cli依赖 1、使用yarn下载vue-cli 2、使用npm下载 3、检查一下是否下载成功 二、创建项目 1、创建项目,my-app是项目名称 2、 这里选择vue 2,蓝色表示选中的。 3、启动项目 三、下载项目依赖 四、配置项目 1、修改esli…...
多模态大模型之达摩院通义MPLUG
引言 随着人工智能技术的飞速发展,多模态技术逐渐成为研究的热点。它结合了文本、图像、声音等多种数据类型,为机器理解世界提供了更丰富的视角。本文根据严明老师的达摩院通义MPLUG多模态预训练技术分享,及其在电商等行业的应用实践&#x…...
文章翻译记录
以 PINN 为基础,我们开发了一个框架,用于在不同震源位置和速度模型下进行地震建模。本研究的显著贡献包括: 1. 为了提高网络对不同速度模型的泛化能力,必须将速度变量 vp 作为系统的输入参数。本研究从监督学习中汲取灵感…...
C++ 语法习题(2)
第三讲 循环语句 1.偶数 编写一个程序,输出 1 到 100之间(包括 1 和 100)的全部偶数。 输入格式 无输入。 输出格式 输出全部偶数,每个偶数占一行。 输入样例 No input输出样例 2 4 6 ... 100 参考代码: #include <i…...
使用Gstreamer时遇到WARNING: erroneous pipeline: no element “x264enc“(亲测有效)
WARNING: erroneous pipeline: no element “x264enc” 解决: 我下了gstreamer1.0-plugins-ugly包就解决了 sudo apt install -y gstreamer1.0-plugins-ugly...
SAP 新增移动类型简介
在SAP系统中新增移动类型的过程涉及多个步骤,包括复制现有的移动类型、调整科目设置以及进行必要的测试。以下是新增移动类型的一般步骤和关键点: 复制现有的移动类型: 使用事务代码OMJJ进入移动类型维护界面。 勾选移动类型 这里不填写移动类型,然后直接下…...
SQL性能优化策略
发现问题 通过业务监控发现慢SQL或接口响应延迟。利用性能分析工具定位问题。 定位SQL语句 使用监控工具确定影响性能的SQL语句和表。 SQL查询变慢原因 索引失效:查询未使用索引或索引效率低。多表连接:JOIN操作导致性能下降。查询字段过多…...
代码随想录第四十八天 | 198.打家劫舍, 213.打家劫舍II,337.打家劫舍III
198.打家劫舍 看完想法:这里的偷/不偷,和背包问题中的放/不放感觉是一个道理,所以在dp递推公式中仍旧使用max(dp[i-2] nums[i], dp[i-1]) int rob(vector<int>& nums) {vector<int> dp(nums.size()1,0);if(nums.size()0) …...
DownKyi如何成为B站视频下载的智能管家?8K高清+批量处理全解析
DownKyi如何成为B站视频下载的智能管家?8K高清批量处理全解析 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水印等…...
FDS火灾动力学模拟器完整指南:从入门到精通建筑消防安全分析
FDS火灾动力学模拟器完整指南:从入门到精通建筑消防安全分析 【免费下载链接】fds Fire Dynamics Simulator 项目地址: https://gitcode.com/gh_mirrors/fd/fds 想要准确预测火灾中的烟雾扩散路径?需要科学评估建筑物的人员疏散时间?F…...
Exo分布式AI集群架构深度解析:多节点选举与容错机制实现原理
Exo分布式AI集群架构深度解析:多节点选举与容错机制实现原理 【免费下载链接】exo Run your own AI cluster at home with everyday devices 📱💻 🖥️⌚ 项目地址: https://gitcode.com/GitHub_Trending/exo8/exo Exo是一…...
如何用Java处理地震波?信号滤波算法
常用的地震波信号滤波算法包括傅里叶转换(fft)与频域滤波器、fir滤波器、iir滤波器和中值滤波器一起。. 通过将时域信号转换为频域,java可以通过apache实现特定频率组件的操作 commons math库中的fastfouriertransformer类实现;2.…...
突破硬件限制的跨显卡AI增强方案:OptiScaler游戏画质优化全解析
突破硬件限制的跨显卡AI增强方案:OptiScaler游戏画质优化全解析 【免费下载链接】OptiScaler DLSS replacement for AMD/Intel/Nvidia cards with multiple upscalers (XeSS/FSR2/DLSS) 项目地址: https://gitcode.com/GitHub_Trending/op/OptiScaler OptiSc…...
DeepSeek辅助求解欧拉计划第940题
原题地址:https://pe-cn.github.io/940/一开始把题目上传,直接让他编写python程序,总是不对。试了Qwen也不行,Longcat稍好一点,S(3)能算出来,提到了封闭式,还提到了阿克曼函数。 最后我将A的递推…...
Java伪终端完全实战:如何用pty4j实现跨平台命令行交互
Java伪终端完全实战:如何用pty4j实现跨平台命令行交互 【免费下载链接】pty4j Pty for Java 项目地址: https://gitcode.com/gh_mirrors/pt/pty4j 在Java应用中集成命令行交互功能,你是否曾面临跨平台兼容性差、进程管理复杂、终端控制能力有限等…...
如何完整备份QQ空间历史说说:GetQzonehistory终极使用指南
如何完整备份QQ空间历史说说:GetQzonehistory终极使用指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 想要永久保存QQ空间里那些珍贵的青春记忆吗?GetQzoneh…...
打造专属AI克隆:零基础构建个性化智能助手的完整指南
打造专属AI克隆:零基础构建个性化智能助手的完整指南 【免费下载链接】WeClone 欢迎star⭐。使用微信聊天记录微调大语言模型,并绑定到微信机器人,实现自己的数字克隆。 数字克隆/数字分身/LLM/大语言模型/微信聊天机器人/LoRA 项目地址: h…...
AI生成内容检测新思路:除了红绿词表,我们还能用哪些方法识别ChatGPT写的文章?
AI生成内容检测技术全景:超越红绿词表的七种实战方法 当ChatGPT生成的论文摘要通过学术评审、AI撰写的新闻稿被主流媒体刊发时,内容真实性的边界正在变得模糊。某高校教授最近向我展示了一份学生作业——文笔流畅的哲学论述,最终被证实完全由…...

