方法引用

来源:互联网 发布:苹果手机电池修复软件 编辑:程序博客网 时间:2024/04/23 15:38

从最初开始,引用基本针对引用类型完成的,也就是数组,类,接口,现在追加方法引用,引用本质就是别名,方法引用有四种方式:

1.引用静态方法:类名称 ::static 方法名称

2.引用某个对象的方法:实例化对象::普通方法

3.引用某个特定类的方法:类名称::普通方法

4 .引用构造方法:类名称::new;

1 引用静态方法

package com.wjx.sayHello;interface IUtil<P,R>{public R changeType(P p);}public class TestDemo {public static void main(String[] args){IUtil<Integer,String> iu=String::valueOf ;//进行方法引用 String str=iu.changeType(1000);  // 相当于String.valueOf(1000)System.out.println(str.length());}}

2.引用某一个对象中 的方法

package com.wjx.sayHello;interface IUtil<R>{public R changeType();}public class TestDemo {public static void main(String[] args){IUtil<String> iu="hello"::toUpperCase ;//进行方法引用 String str=iu.changeType();  // 相当于String.valueOf(1000)System.out.println(str);}}

3.引用类中的普通方法:

package com.wjx.sayHello;interface IUtil<R,P>{public R 比较字符大小哈哈哈(P p1,P p2);}public class TestDemo {public static void main(String[] args){IUtil<Integer,String> iu=String::compareTo;//进行方法引用  System.out.println(iu.比较字符大小哈哈哈("b", "a"));}}

4,引用构造方法

package com.wjx.sayHello;class Person1{private int age;private String name;public Person1(String name,int age){this.age=age;this.name=name;}@Overridepublic String toString() {return "Person1 [age=" + age + ", name=" + name + "]";}}interface IUtil<R,PN,PS>{public R create(PN name,PS age);}public class TestDemo {public static void main(String[] args){IUtil<Person1,String,Integer> iu=Person1::new;//进行方法引用 System.out.println(iu.create("张三", 12));}}


原创粉丝点击