美文网首页
方法引用

方法引用

作者: 开心的小哈 | 来源:发表于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;
        }
    }
    
    

    相关文章

      网友评论

          本文标题:方法引用

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