美文网首页
方法引用

方法引用

作者: 开心的小哈 | 来源:发表于2021-09-17 20:17 被阅读0次

1.体验方法引用
::该符号为引用运算符,而他所在的表达式被称为方法引用
无参引用

public interface Add {
    void dd();

}

main

 //方法引用
        userFlu(System.out::println);

    }
    private static void userFlu(Add demo){
        demo.dd();
        System.out.println("呵呵");

    }

带参数引用

//方法引用
        userFlu(System.out::println);

    }
    private static void userFlu(Add demo){
        demo.dd("hhhh");


    }
public interface Add {
    void dd(String s);

}

类名引用静态方法

 //方法引用
        userFlu(MyInerfaceTO::paserInt);
//    userFlu(s -> Integer.parseInt(s));

    }
    private static void userFlu(Add demo){
        int dd = demo.dd("123");
        System.out.println(dd);


    }
public class MyInerfaceTO implements MyInterface{
    public static int paserInt(String s){
     return Integer.parseInt(s);
    }

引用对象的实例方法

 PrintString printString = new PrintString();

        userFlu(printString::printCase);

private static void userFlu(Add demo){
          demo.dd("123");



    }
package test;

/**
 * @outhor chenglong
 * @create 2021-09-15 22:02
 * @name 小哈
 */
public interface Add {
    void dd(String s);

}

package test.interfacei;

/**
 * @outhor chenglong
 * @create 2021-09-17 19:49
 * @name 小哈
 */
public class PrintString {
    public void printCase(String s){
        String s1 = s.toUpperCase();
        System.out.println(s1);

    }
}

引用类的实例方法(成员方法)

public class MyInerfaceTO  implements MyInterface{
    public static MyInerfaceTO init(){
        return new MyInerfaceTO();
    }
    
    public static int paserInt(String s){
     return Integer.parseInt(s);
    }
    public  String subString(String m,int s,int y){
        return m.substring(s,y);
    }
package test;

/**
 * @outhor chenglong
 * @create 2021-09-15 22:02
 * @name 小哈
 */
public interface Add {
    String  mySubString(String s,int x,int y);

}

      userFlu(MyInerfaceTO.init()::subString);
    }
    private static void userFlu(Add demo){
        String hoole = demo.mySubString("hoole", 2, 3);
        System.out.println(hoole);
    }

引用构造器

  userFlu(PrintString::new);
//        userFlu((name,age)->new PrintString(name,age));
        //lambda表达式被构造方法代替的时候,他的形式参数全部传递构造器作为参数
    }
    private static void userFlu(Add demo){
        PrintString lin = demo.iBringtString("林檎下", "12");
        System.out.println(lin.toString());
    }
package test;

import test.interfacei.PrintString;

/**
 * @outhor chenglong
 * @create 2021-09-15 22:02
 * @name 小哈
 */
public interface Add {
    PrintString iBringtString(String name,String age);

}

package test.interfacei;

/**
 * @outhor chenglong
 * @create 2021-09-17 19:49
 * @name 小哈
 */
public class PrintString {
  String name;
  String age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

    public PrintString(String name, String age) {
        this.name = name;
        this.age = age;
    }
}

相关文章

  • 2020-07-04【方法引用】

    体验方法引用 方法引用符 引用方式

  • Java8——方法引用和构造器引用

    方法引用和构造器引用 方法引用 若Lambda体中的内容已经有方法实现过了,我们可以使用方法引用(方法引用是Lam...

  • 双冒号方法引用

    类别使用形式静态方法引用类名 :: 静态方法名实例方法引用对象名(引用名) :: 实例方法名类方法引用类名 :: ...

  • Java中的双冒号::是什么玩意?有这个语法?

    简洁 方法引用 Optional 可选值 一:简洁 方法引用分为三种,方法引用通过一对双冒号:: 来表示,方法引用...

  • 3.Java8新特性 - 方法引用与构造器

    一.方法的引用 方法引用是用来直接访问类或者实例的已经存在的方法或者构造方法。方法引用提供了一种引用而不执行方法的...

  • jdk8 方法引用

    方法引用 方法引用可看作一个“函数指针” function pointer 方法引用分为4类 1,类名::静态方法...

  • 方法引用

    1.什么是方法引用 方法引用是java8中特定情况下简化lambada表达式的一种语法糖,这里的特定情况是指当调用...

  • 方法引用

    方法引用(Method References) 声明:java8新特性系列为个人学习笔记,参考地址点击这里,侵删!...

  • 方法引用

    1.1 方法引用体验 方法引用出现的原因 在使用Lambda表达式的时候,我们实际上传递进去的代码就是一种解决方案...

  • 方法引用

    lambda表达式被类方法替代的时候,它的形式参数全部传递给静态方法作为参数 lambda表达式被对象的实例方法替...

网友评论

      本文标题:方法引用

      本文链接:https://www.haomeiwen.com/subject/tsmdgltx.html