Java学习提要——方法引用
来源:互联网 发布:熊猫安全软件 编辑:程序博客网 时间:2024/04/29 16:21
JDK1.8新特性
1.方法引用概念
方法引用就是为一个方法设置别名,相当于一个方法定义不同的名字
其四种形式:
引用静态方法: 类名称 :: static 方法名称
引用某个对象方法: 实例化对象 :: 普通方法
引用特定类型方法: 特定类 :: 普通方法
引用构造方法: 类名称 :: new
接口里面只需要存在一个方法!所以为了保证只有一个方法,那么在定义之前加上@FunctionalInterface
2.引入静态方法
引:在String类里面有一个valueOf()方法:public static String valueOf(int x);
@FunctionalInterface //此函数式接口,使interface只能够定义一个方法interface IMessage<T,R> { //<T>引用方法的参数类型,<R>引用方法的返回类型 public R change(T t) ;}public class Nice { public static void main(String args[]) { //将String.valueOf()方法,变成了我现在这个方法 IMessage<Integer,String> msg = String :: valueOf; String str = msg.change(100); System.out.println(str.replaceAll("0","6"));//将字符串中的‘0’换成‘6’ }}
3.引入普通方法
引:String类里面的大写函数:String.toUpperCase()
interface IMessage <R> { public R upper();}public class Nice { public static void main( String args[] ) { //这个方法没有参数,但是有返回值,并且这个方法一定要在有实例化对象的时候调用 IMessage<String> msg = "hello" :: toUpperCase ;//“hello”就是String类的实例化对象 String str = msg.upper();//相当于“"hello".toUpperCase()” System.out.println(str); }}
4.引入特定类型方法
这种引用需要特定类的对象支持,正常情况下“类 :: 方法”,引用的一定是类中的静态方法,但是这种形式也可以引用以下:
引:String类中有个比较方法:public int compareTo(String anotherString),此方法需要两个参数
interface IMessage <T> { public int compare(T t1,T t2) ;}public class Nice { public static void main( String args[] ) { IMessage<String> msg = String :: compareTo ; //引用前不需要调用对象,而是可以理解为将对象定义在参数上 System.out.println(msg.compare("A","B")); }}
5.引用构造方法
interface IMessage<C> { public C create(String t,double p) ;}class Book { private String title ; private double price; public Book(String title , double price) { this.title = title ; this.price = price ; } public String toString () { return "bookname:" + this.title + ",bookprice:" + this.price ; }}public class Nice { public static void main(String args[]) { IMessage<Book> msg = Book :: new ; //引用构造方法 //调用的虽然是create(),但是这个方法引用的是Book类的构造 Book book = msg.create("Java" , 69) ; System.out.println(book); }}
6.总概
对象的引用使用不同的名字,而方法引用是需要一个函数式接口,并且设置好参数,当然,JDK1.8现在可能还不太常用。
0 0
- Java学习提要——方法引用
- Java学习提要——String的基本方法
- Java学习提要——字符串连接
- Java学习提要——接口进阶
- Java学习提要——Callable接口
- Java学习提要——Comparable接口
- Java学习提要——"反射"获取方法信息(成员函数、成员变量 、构造函数)
- Java学习提要——方法"反射"基本操作与"绕过泛型"实验
- Java学习提要——对象多态性概念
- Java学习提要——抽象类的使用限制
- Java学习提要——'接口'的基础示例
- Java学习提要——浅谈Object类
- Java学习提要——包装类与数据类型转换
- Java学习提要——异常的基本概念
- Java学习提要——认识'泛型'与其常见操作
- Java学习提要——多线程命名、休眠、优先级
- Java学习提要——StringBuffer类基础
- Java学习提要——Runtime类基础
- Java读写docx文档(读取内容并替换其中的关键字)
- JSF学习前应做的准备以及准备中经常遇到的问题
- Ceph搭建过程中遇到的各种问题
- 数组中排序的一些方法,选择排序,冒泡排序,和数组中自己的方法
- PHP 时间操作(获取一周前、明天的日期)
- Java学习提要——方法引用
- java基础——泛型解析
- bloger测试
- 授权的过程和原则
- Spring笔记(三):Aop详解
- RecyclerView 实现横向滚动效果
- 0827考试总结
- 将任意Java对象RDD转换成DataFrame
- Nginx的启动、关闭和重启