• 方法引用


      从最初开始只要是进行引用基本上都是针对于引用基本上都是针对于引用类型完成的,也就是说只有数组,类,接口具备引用的操作,但是现在开始追加了方法引用的概念,实际上引用的本质就是别名,所以方法的引用就是别名的使用。而方法引用的类型可以有四种形式

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

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

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

        引用构造方法:类名称::new 

    范例:引用静态方法

      在String类中有一个valueof()方法,这个方法就是进行静态调用的。 

     1 package cn.Tony.demo;
     2 @FunctionalInterface  //是一个函数式编程的接口只允许有一个方法,
     3 interface IUtil<P,R>{
     4     public R zhuanhuan(P p);
     5 }
     6 public class TestDemo {
     7     public static void main(String[] args) {
     8         IUtil<Integer,String> iu=String::valueOf;
     9         String str=iu.zhuanhuan(1000);//用字符串来接收
    10         System.out.println(str.length());
    11     }
    12 }  

      就相当于为方法起了个别名。

    范例:引用某一个对象中的方法

     1 package cn.Tony.demo;
     2 @FunctionalInterface  //是一个函数式编程的接口只允许有一个方法,
     3 interface IUtil<R>{
     4     public R zhuanhuan();
     5 }
     6 public class TestDemo {
     7     public static void main(String[] args) {
     8         IUtil<String> iu="hello"::toUpperCase;//进行方法引用
     9         System.out.println(iu.zhuanhuan());
    10     }
    11 }  

    范例:引用类中的普通方法

      String类中有一个compareTo(),进行比较大小;

     1 package cn.Tony.demo;
     2 @FunctionalInterface  //是一个函数式编程的接口只允许有一个方法,
     3 interface IUtil<R,P>{
     4     public R zhuanhuan(P p1,P p2);
     5 }
     6 public class TestDemo {
     7     public static void main(String[] args) {
     8         IUtil<Integer,String> iu=String::compareTo;//进行方法引用
     9         System.out.println(iu.zhuanhuan("H","h"));
    10     }
    11 }

    范例:引用构造方法

     1 package cn.Tony.demo;
     2 class Person{
     3     private String name;
     4     private int age;
     5     public Person(String name,int age) {
     6         this.name=name;
     7         this.age=age;
     8     }
     9     @Override
    10     public String toString() {
    11         return "Person [name=" + name + ", age=" + age + "]";
    12     }
    13 }
    14 @FunctionalInterface  //是一个函数式编程的接口只允许有一个方法,
    15 interface IUtil<R,FP,SP>{
    16     public R zhuanhuan(FP p1,SP p2);
    17 }
    18 public class TestDemo {
    19     public static void main(String[] args) {
    20         IUtil<Person,String,Integer> iu=Person::new;//进行方法引用
    21         System.out.println(iu.zhuanhuan("H",20));
    22     }
    23 }
  • 相关阅读:
    java.sql.SQLException: Io 异常: Got minus one from a read call
    ORACLE 数据库名、实例名、ORACLE_SID的区别
    如何查看oracle的sid
    expdp impdp 数据库导入导出命令详解
    Oracle连接数过多释放机制
    oracle查看允许的最大连接数和当前连接数等信息
    世界是无限的、复杂的、运动的
    世界
    世界观和方法论是一致的,有怎样的世界观就有怎样的方法论
    运动着的物质世界是普遍联系和永恒发展的
  • 原文地址:https://www.cnblogs.com/Tony98/p/10475749.html
Copyright © 2020-2023  润新知