在之前的学习中,我们已经对Lambda表达式有所接触,并进行了相关的操作。那么在具体的使用过程上,我们需要明确其具体的使用范围。本篇将以三种访问类型为例,局部变量、成员变量和静态变量,并为大家讲解不同访问情景下,Lambda表达式的不同操作,下面一起来看具体内容。

1、访问局部变量

可以访问lambda表达式外部的final局部变量:final int num = 1;

Converter stringConverter =

(from) -> String.valueOf(from + num);

stringConverter.convert(2);     // 3

但是与匿名对象不同的是,变量num并不需要一定是final。在lambda表达式内部企图改变num的值也是不允许的。

2、访问成员变量和静态变量

与局部变量不同,我们在lambda表达式的内部能获取到对成员变量或静态变量的读写权。这种访问行为在匿名对象里是非常典型的。class Lambda4 {

static int outerStaticNum;

int outerNum;

void testScopes() {

Converter stringConverter1 = (from) -> {

outerNum = 23;

return String.valueOf(from);

};

Converter stringConverter2 = (from) -> {

outerStaticNum = 72;

return String.valueOf(from);

};

}

}

以上就是Java中Lambda的使用范围,大家可以就具体的使用场景,先进行说明方面的理解,然后再运行实例代码部分。更多Java学习指路:

java lambda 应用场景,Java中Lambda的使用范围相关推荐

  1. php有lambda表达式吗,Python中lambda表达式的简单介绍(附示例)

    本篇文章给大家带来的内容是关于Python中lambda表达式的简单介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 一:匿名函数的定义 lambda parameter ...

  2. python中lambda()的用法_python中lambda()的用法

    在C++11和C#中都有匿名函数的存在.下面看看在python中匿名函数的使用. 1.lambda只是一个表达式,函数体比def简单很多. 2.lambda的主体是一个表达式,而不是一个代码块.仅仅能 ...

  3. Java中lambda表达式去重_JAVA8中Lambda和Stream

    Java8于2014年3月份发布,其主要更新的特性有:函数式接口.Lambda 表达式.集合的流式操作.注解的更新.安全性的增强.IO\NIO 的改进.完善的全球化功能等,本文将介绍Lambda表达式 ...

  4. lambda函数python-python中lambda函数

    1.lambda函数使用如下: lambda语句中,冒号前是参数,可以有多个,用逗号隔开,冒号右侧的是返回值 >>> g=lambda x,y:x*y >>> g( ...

  5. java 3D 第二章 java 3D基本概念

    java 3D 第二章 java 3D基本概念 java 3D基本概念 java 3D的包及其功能 java 3D 高分辨率大尺度坐标 Java 3D场景图(Scene Graph) VirtualU ...

  6. Java forEach中 Lambda Expr中的 final变量要求

    https://my.oschina.net/wadelau/blog/1859419 Java forEach中 Lambda Expr中的 final变量要求 Java8闭包 闭包是一个函数在创建 ...

  7. Java中Lambda表达式使用及详解

    Java中Lambda表达式使用及详解 前言 一.Lambda表达式的简介 Lambda表达式(闭包):java8的新特性,lambda运行将函数作为一个方法的参数,也就是函数作为参数传递到方法中.使 ...

  8. python中的lambda 和java中的lambda有什么不同?lambda相关介绍

    不知道大家有没有想过:为什么java一直到jdk8才推出lambda表达式 而python很早就有! 事实上.Python设计上函数就是一个对象,作为一门OO语言它要比Java纯粹得多,Java这种不 ...

  9. java lambda::_书评:精通Lambda:多核世界中的Java编程

    java lambda:: 从版本8开始,λ编程(lambda编程)终于在Java世界中引入.此功能将在很大程度上改变Java开发人员的编程方式以及针对样板代码的新"武器". Ja ...

最新文章

  1. 对‘pthread_create’未定义的引用_驾驭香辣调味油制作的巧劲,这三组香料组合拳劲道十足,容易引用...
  2. idea集成spring+spring MVC+mybatis问题
  3. 在 .NET 中使用 C# 处理 YAML
  4. 6月26号.NET面试题(程序题部分)只要做懂这3道题肯定能脱离菜鸟称号!
  5. Android开发笔记(七十四)布局文件优化
  6. Lync 2013持久聊天迁移至Skype for Business
  7. bcp 不能调用where 子句_三、p18-28条件查询、分组聚合、排序where/group by/having/order by...
  8. 从web页面请求的历程出发了解计算机网络的基础知识
  9. 百度地图获取数据库点的坐标,并定时刷新到页面上 jsp
  10. java503错误是什么_打开网页后出现503 service unavailable等字样,什么意思
  11. GD GD5F4GQ6UEYIGR 存储IC
  12. ubuntu18.04安装搜狗拼音
  13. 数电仿真实验-数字钟的设计
  14. 施工人员临时出入证管理制度
  15. ASEMI快恢复二极管MUR560D怎么代换,MUR560D替代原则
  16. Springboot idea 导包
  17. 日常英语单词学习-A Family Tree
  18. Java Web应用开发 钱荣华、朱勇、屠凯、姜文秀
  19. 计算机的广泛应用让我们摆脱了很多文书工作,英语汉英翻译题.doc
  20. html5 获取页面的宽和高

热门文章

  1. cgi硬盘安装器_简简单单,玩转虚拟硬盘装多系统
  2. mysql 两列计数_MySQL在两列上计算唯一值,并为每列连接这些计数
  3. 皮一皮:大家对自己的定位都挺准的...
  4. IDEA插件推荐:中文字符自动转化!
  5. Java 9 - 17 特性解读:Java 9
  6. 最新最全!阿里等宣布再次延迟复工,有您们公司嘛?
  7. git push 如何同时推送至两个git仓库
  8. Istio 1.3 发布:HTTP 遥测不再需要 Mixer
  9. 看看阿里是如何做软件集成发布的
  10. 分布式系统关注点:弹性架构