Java有参的Lambda表达式!
public class Main {
interface Shi{
int func(int a, int b);
}
private static void suan(Shi shi, int a, int b) {
System.out.println(shi.func(a, b));
}
public static void main(String[] args) {
suan((a, b) -> a * b, 2, 4);
suan((a, b) -> a - b, 6, 3);
Shi add = (a, b) -> a + b, divide = (a, b) -> a / b;
suan(add, 6, 7);
suan(divide, 6, 3);
System.out.println(add.func(6, 7));
My.printInt.print(add.func(2, 3));
You.printInt.print(divide.func(8, 2));
My.printDouble.print(3.14);
You.printDouble.print(3.1415926);
My.print.print("asd");
You.print.print("gff");
my.print("abs");
you.print(3.14);
}
interface PrintInt {
void print(int a);
}
interface PrintDouble {
void print(double a);
}
interface Print {
void print(Object a);
}
private static Print my = a -> System.out.println(a);
private static Print you = a -> System.out.println("***" + a + "***");
static class My {
private static Print print = a -> System.out.println(a);
private static PrintInt printInt = a -> System.out.println(a);
private static PrintDouble printDouble = a -> System.out.println(a);
}
static class You {
private static Print print = a -> System.out.println("***" + a + "***");
private static PrintInt printInt = a -> System.out.println("***" + a + "***");
private static PrintDouble printDouble = a -> System.out.println("***" + a + "***");
}
}