两种书写方式,在PrinterDemo类中:
上面是未简化过的匿名内部类实现方式。
下方是使用Lambda表达式和引用运算符后简化的实现方式。
public class PrinterDemo {
public static void main(String[] args) {
PrintString p = new PrintString();
usePrinter(new Printer() {
@Override
public void printUpperCase(String s) {
p.printUpper(s);
}
});
System.out.println("**************************");
usePrinter(p::printUpper);
}
public static void usePrinter(Printer p) {
String s = "HELLOjava";
System.out.println(s);
p.printUpperCase(s);
}
}
public class PrintString {
public void printUpper(String s){
String result = s.toUpperCase();
System.out.println("转换为大写后:"+result);
}
}
public interface Printer {
void printUpperCase(String s);
}