Java中如何将this和Super关键字与lambda表达式一起使用
lambda表达式中的“this”和“super”引用与封闭上下文中的引用相同。由于lambda表达式未定义新的作用域,因此lambda表达式内的“this”关键字表示lambda表达式所在的方法的“this”参数。
在下面的示例中,this.toString()只调用LambdaTest对象的toString()方法,而不调用Operate实例的toString()方法。
示例
@FunctionalInterfaceinterface Operate {
int func(int num1, int num2);
public String toString();
}
public class LambdaTest {
public static void main(String[] args) {
LambdaTest test = new LambdaTest();
test.getResult();
}
public void getResult() {
Operate op = (num1, num2) -> { // lambda 表达式
System.out.println("hashcode: " + this.hashCode());
System.out.println("调用 toString(): "+ this.toString());
return num1 + num2;
};
System.out.println("结果: "+ funcInt.func(10, 7));
} @Override
public String toString() {
System.out.println("Super hashcode: " + super.hashCode());
return Integer.toString(super.hashCode());
}
}输出结果
hashcode: 142257191 Super hashcode: 142257191 调用 toString(): 142257191 结果: 17
热门推荐
10 新年门口花束祝福语简短
11 盘锦结婚祝福语大全简短
12 父母生日祝福语 简短独特
13 家庭恩爱祝福语简短英文
14 高考俄语祝福语大全简短
15 虎年祝福语 诗句唯美简短
16 生日婚礼祝福语简短精辟
17 虎年喝酒拜年祝福语简短
18 教师闺蜜祝福语简短