一.无参无返回值的
语法格式: 接口 接口对象 = ()->表达式;
interface Computer {
void coding();
}
public class Demo2 {
public static void main(String[] args) {
//接口 接口对象 = ()->表达式;
Computer computer = ()-> System.out.println("敲代码");
//test(()-> System.out.println("嗷嗷叫的敲代码"));
test(computer);
test(()-> System.out.println("敲代码"));
test(new Computer() {
@Override
public void coding() {
System.out.println("嘻嘻敲代码");
}
});
}
public static void test (Computer computer) {
computer.coding();
}
}
二.有参无返回值的
语法格式: 接口 接口对象 = (parameter)->表达式;
interface A {
//有参无返回值的方法
void eat (String name, int age);
}
public class Demo3 {
public static void main(String[] args) {
test(new A() {
@Override
public void eat(String name, int age) {
System.out.println(name+ "年龄为:" + age + ",在吃牛肉");
}
}, "狗蛋", 12);
//把 方法中的接口 变成了lambada表达式
//接口 接口对象 = (parameter)->表达式; 有参无返回值的
test((name, age)-> System.out.println(name+ "年龄为:" + age + ",在吃牛肉"), "呵呵", 89);
}
public static void test (A a, String name, int age) {
a.eat(name, age);
}
}
三.有参有返回值的
语法格式: 接口 接口对象 = ()->{表达式;}
interface B {
int num();
}
public class Demo4 {
public static void main(String[] args) {
test(new B() {
@Override
public int num() {
return 50;
}
});
test(()->{return 50;});
}
public static void test (B b) {
System.out.println(b.num());
}
}
四.有参有返回值的
语法格式:接口 接口对象 = (parameter)->{表达式;}
interface Computer {
void coding();
}
public class Demo2 {
public static void main(String[] args) {
//接口 接口对象 = ()->表达式;
Computer computer = ()-> System.out.println("敲代码");
//test(()-> System.out.println("嗷嗷叫的敲代码"));
test(computer);
test(()-> System.out.println("敲代码"));
test(new Computer() {
@Override
public void coding() {
System.out.println("嘻嘻敲代码");
}
});
}
public static void test (Computer computer) {
computer.coding();
}
}