在做一个项目的时候会多次用到一个方法 我们就可以使用方法引用
只有函数式接口才可以用栏目大表达式
静态方法要用类名去调用
静态方法中是没有this的
泛型中不能写基本数据类型
红线所化的是函数式接口 这个接口本可以用栏目大表达式来进行简化 但是这里有更简单 的方法.
案例:
栏目大简化 :
数据类型可以省略 如果形参只有一个小括号可以省略 多个不可以省略 方法体只有一行 大括号可以省略 return可以省略 分号可以省略
::是方法引用符号
方法引用的分类
引用静态方法
使用匿名内部类
在map方法中的形参 第一个是流里面的数据类型 第二个是要转换成的数据类型
方法块中的代码不想写了
第一步先看map是不是函数式接口 用ctrl+b进去 在点击形参进去 会发现
是函数式接口 所以可以使用方法引用
进入parseInt中会发现这个方法和咱们的需求一样
引用成员方法
练习
在其他类中自己定义一个方法
如果要在本类中的方法 而本类是静态的 要创建本类去引用
案例
本来this::method1方法在下面
但是我们可以将method1方法放到myjframe中
将loginjframe继承myjframe
myjframe继承jframe
代码就可以修改成
引用构造方法
目的是为了创建对象
封装成student对象并收集到list集合中
要封装成student中就代表着 要将string类型转换为student 所以要先有student类
并创建student的get和set方法
用方法引用去进行改写
形参不一致在student类中
我们只需要加一个一样的就ok
补全这个构造方法
可是构造方法没有返回值啊 返回值不匹配
构造方法进行完之后那个对象就已经有了 所以构造方法时不需要要管返回值 只需要构造方法生成的对象和流中返回值一致就欧克
用他的规则来看 第二个参数到最后一个参数 需要跟被引用的方法形参一致 没有的话是无参
第一个参数是string所以只能引用string的方法
总结
练习
2.
技巧