【java】方法引用-创新互联

文章目录
  • 体验方法引用
  • 方法引用符
  • Lambda表达式支持的方法引用
  • 引用对象的实例方法
  • 引用类的实例方法
  • 引用构造器

新北ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!体验方法引用

在这里插入图片描述

package heima.方法引用;

public class PrintableDemo {public static void main(String[] args) {//在主方法中调用usePrintable方法
//        usePrintable((String s )->{//            System.out.println(s);
//        });
        usePrintable(s->System.out.println(s));

        //方法引用符::: (可推导的就是可省略的)
        usePrintable(System.out::println);
    }

    private static void usePrintable(Printable p){p.printString("爱生活爱Java");
    }
}

在这里插入图片描述

方法引用符

在这里插入图片描述
它的使用,同上一个案例

Lambda表达式支持的方法引用

在这里插入图片描述
在这里插入图片描述

package heima.方法引用.Lambda表达式支持的方法引用;

public class ConverterDemo {public static void main(String[] args) {//在主方法中调用useConverter方法
//        useConverter((String s)->{//            return Integer.parseInt(s);
//        });
//        useConverter(s->Integer.parseInt(s));

        //引用类方法
        useConverter(Integer::parseInt);
        
        //Lambda表达式被类方法替代时,它的形式参数全部传递给静态方法作为参数
    }
    private static void useConverter(Converter c){int num = c.convert("666");
        System.out.println(num);
    }
}
引用对象的实例方法

在这里插入图片描述

package heima.方法引用.引用类的实例方法;

public interface Printer {void printUpperCase(String s);
}
package heima.方法引用.引用类的实例方法;

public class PrintString {//把字符串参数变成大写的数据,然后在控制台输出
    public void printUpper(String s){String result = s.toUpperCase();
        System.out.println(result);
    }
}
package heima.方法引用.引用类的实例方法;

public class PrinterDemo {public static void main(String[] args) {//在主方法中调用usePrinter方法

//        usePrinter((String s)->{String result = s.toUpperCase();
            System.out.println(result);
//            System.out.println(s.toUpperCase());
//        });

        usePrinter(s->System.out.println(s.toUpperCase()));

        //引用对象的实例方法
        PrintString ps = new PrintString();
        usePrinter(ps::printUpper);
    }

    private static void usePrinter(Printer p){p.printUpperCase("HelloWorld");
    }
}

输出:
在这里插入图片描述

引用类的实例方法

在这里插入图片描述

package heima.方法引用.引用类的实例方法;

public class MyStringDemo {public static void main(String[] args) {//在主方法中调用useMyString方法
        useMyString((s,x,y)->s.substring(x,y));

        //引用类的实例方法
        useMyString(String::substring);
    }

    private static void useMyString(MyString my){String s = my.mySubString("HelloWorld",2,5);
        System.out.println(s);
    }
}
package heima.方法引用.引用类的实例方法;

public interface MyString {String mySubString(String s,int x,int y);
}
引用构造器

在这里插入图片描述

package heima.方法引用.引用构造器;

public class Student {private String name;
    private int age;

    public Student() {}

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

    public String getName() {return name;
    }

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

    public int getAge() {return age;
    }

    public void setAge(int age) {this.age = age;
    }
}
package heima.方法引用.引用构造器;

public interface StudentBuilder {Student build(String name,int age);
}
package heima.方法引用.引用构造器;

public class StudentDemo {public static void main(String[] args) {//在主方法中调用useStudentBulder方法
        useStudentBulder(((name, age) ->new Student(name,age)));

        //引用构造器
        useStudentBulder(Student::new);
    }

    private static void useStudentBulder(StudentBuilder sb){Student s = sb.build("小林",30);
        System.out.println(s.getName()+','+s.getAge());
    }
}

输出:
在这里插入图片描述

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


新闻名称:【java】方法引用-创新互联
网站路径:http://ybzwz.com/article/cchdje.html