方法引用
- 方法引用介绍
最初只要进行引用基本上都是针对引用类型完成的,只有数组、类、接口具备,引用的操作,但是现在追加了方法引用的概念。实际上引用的本质就是别名。所以方法的引用也是别名的使用。
二、方法引用类型
方法引用的类型可分为四种;
- 引用静态方法:类名称::static方法名称;
- 引用某个对象的方法:实例化对象::普通方法;
- 引用某个特定类的方法:类名称::普通方法;
- 引用构造方法:类名称::new。
三、方法引用范例
范例:引用静态方法
在String类中有一个valueof(),这个方法就是进行静态调用的。
示例操作:根据文档“Java-platform SE 8—static String”的类型,打开simplework-Java EE,在TestDemo.java对话框输入,如下:
Package cn.mldn.demo;
@FunctionalInterface
Interface Iutil<P,R> {
public R zhuanhuan(P p);
}
public class TestDemo {
public static void main(String[] args) {
Iutil<Integer,String>iu=String::valueof;//进行方法引用
String str =iu.zhuanhuan(1000);//想当于:
String.valueof(1000)
(str.length());
点击执行即可
范例:引用某一个对象的方法
打开simplework-Java EE,在TestDemo.java对话框输入,操作如下:
Package cn.mldn.demo;
@FunctionalInterface
Interface Iutil<R> {
public R zhuanhuan()
}
public class TestDemo {
public static void main(String[] args) {
Iutil<Integer,String>iu=“hello”::toUpperCase;//进行方法引用
System.out.println(iu.zhuanhuan());//转换的就是这个“hello“
再点击执行
范例:引用类中的普通方法
String类中有一个compareTo(),进行比较大小;如下:
Package cn.mldn.demo;
@FunctionalInterface
Interface Iutil<R,P> {
public R 比较(P p1,P p2);
}
public class TestDemo {
public static void main(String[] args) {
Iutil<Integer,String>iu=String :: comparTo;//进行方法引用
System.out.println(iu.比较(“H”,”h”));
}
}
范例:引用构造方法
Package cn.mldn.demo;
Class Person {
Private String name ;
Private int age ;
Public person(String name,int age){
This.name = name ;
This.age = age ;
}
@Override
Public String toString() {
Return “person [name=”+name=”,age=”+age+”]”;
}
}
@FunctionalInterface
Interface Iutil<R,FP,SP> {
Public R create (FP p1,SP p2)
}
Public class TestDemo {
Public static void main(String[] args) {
Iutil<person,String,integer>iu= person::new;
System.out.println(iu.create(“张三“,20));
}
}
然后右击鼠标“Run As—1 Java Application”完成。
这些都属于Lamdba补充,不属于现阶段的开发