package com.paddington;
public class Demo {
public static void main(String[] args) {
/*//匿名内部类写法,直接new 接口来表示子类对象
printString(new Printable() {
@Override
public void print(String str) {
MethodObject me = new MethodObject();
me.printToUpperCase(str);
}
});*/
/*//lambda写法,只关注方法执行的流程
printString(str -> {
MethodObject me = new MethodObject();
me.printToUpperCase(str);
});*/
//方法引用写法,直接使用已知对象中的已有方法
printString(new MethodObject()::printToUpperCase);
}
// 定义方法,将Printable当做参数传递
public static void printString( Printable p ){
p.print("Hello");
}
}
@FunctionalInterface
interface Printable {
public abstract void print(String str);
}
// 定义类
class MethodObject {
// 创建方法,将传递的字符串数据转为大写输出
public void printToUpperCase( String str ){
System.out.println( str.toUpperCase() );
}
}
匿名内部类->lambda表达式->方法引用
最新推荐文章于 2021-11-12 21:55:19 发布