【java】方法引用-创新互联
                                            
                                                文章目录
分享名称:【java】方法引用-创新互联
地址分享:http://www.cqwzjz.cn/article/cchdje.html
                                            
                                        - 体验方法引用
- 方法引用符
- Lambda表达式支持的方法引用
- 引用对象的实例方法
- 引用类的实例方法
- 引用构造器

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");
    }
}


它的使用,同上一个案例


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://www.cqwzjz.cn/article/cchdje.html

 建站
建站
 咨询
咨询 售后
售后
 建站咨询
建站咨询 
 