在 Java 循环中重新声明变量

2024-04-13

在Java中,我们不能将一个变量与另一个同名变量声明在同一作用域中:

int someInteger = 3;

...

int someInteger = 13;

语法错误,无法编译。但是,如果我们将其放入循环中:

for (int i = 0; i < 10; i++) {
   int someInteger = 3;
}

不会产生任何错误,工作得很好。我们基本上声明了相同的变量。是什么原因?我不知道/理解这背后的逻辑是什么?


这样想,每次循环之后,作用域都被“破坏”,变量也消失了。在下一个循环中,创建一个新的作用域,并且可以在该作用域中再次声明该变量。

出于类似的原因,您也可以这样做

{
   int someInteger = 3;
}
{
   int someInteger = 13;
}

顺便说一下,Java 不允许局部变量遮蔽,这可能会带来不便

int x = 3;
{
   int x = 13; // error!
}

Consumer<Integer> consumer = (x)->print(x);  // ERROR! 
// lambda parameter is treated like local variable

Runnable r = ()->{ int x; ... } // ERROR
// lambda body is treated like local block
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Java 循环中重新声明变量 的相关文章

  • Spring Security 自定义过滤器

    我想自定义 Spring security 3 0 5 并将登录 URL 更改为 login 而不是 j spring security check 我需要做的是允许登录 目录并保护 admin report html 页面 首先 我使用教
  • 如何在 Firebase 远程配置中从 JSON 获取值

    我是 Android 应用开发和 Firebase 的新手 我想知道如何获取存储在 Firebase 远程配置中的 JSONArray 文件中的值 String 和 Int 我使用 Firebase Remote Config 的最终目标是
  • 使用 Ant 将非代码资源添加到 jar 文件

    我正在将 java 应用程序打包成 jar 文件 我正在使用 ant 和 eclipse 我实际上需要在 jar 中直接在根文件夹下包含几个单独的非代码文件 xml 和 txt 文件 而不是与代码位于同一位置 我正在尝试使用includes
  • 使用 GWT 读取非常大的本地 XML 文件

    我正在使用 GWT 构建我的第一个 Java 应用程序 它必须从一个非常大的 XML 文件中读取数据 当我尝试发送对文件中信息的请求时遇到问题 并且我不太确定它是否与文件的大小或我的语义有关 在我的程序中 我有以下内容 static fin
  • Spring Data JPA 选择不同

    我有一个情况 我需要建立一个select distinct a address from Person a 其中地址是 Person 内的地址实体 类型的查询 我正在使用规范动态构建我的 where 子句并使用findAll Specifi
  • 通往楼梯顶部的可能路径

    这是一个非常经典的问题 我听说谷歌在他们的面试中使用过这个问题 问题 制定一个递归方法 打印从楼梯底部到楼梯顶部的所有可能的独特路径 有 n 个楼梯 您一次只能走 1 步或 2 步 示例输出 如果它是一个有 3 级楼梯的楼梯 1 1 1 2
  • 大数据使用什么数据结构

    我有一个包含一百万行的 Excel 工作表 每行有 100 列 每行代表一个具有 100 个属性的类的实例 列值是这些属性的值 哪种数据结构最适合在这里使用来存储数百万个数据实例 Thanks 这实际上取决于您需要如何访问这些数据以及您想要
  • 如何将 Mat (opencv) 转换为 INDArray (DL4J)?

    我希望任何人都可以帮助我解决这个任务 我正在处理一些图像分类并尝试将 OpenCv 3 2 0 和 DL4J 结合起来 我知道DL4J也包含Opencv 但我认为它没什么用 谁能帮我 如何转换成 INDArray 我尝试阅读一些问题here
  • Spring Security SAML2 使用 G Suite 作为 Idp

    我正在尝试使用 Spring Security 5 3 3 RELEASE 来处理 Spring Boot 应用程序中的 SAML2 身份验证 Spring Boot 应用程序将成为 SP G Suite 将成为 IDP 在我的 Maven
  • 如何使用 Hibernate (EntityManager) 或 JPA 调用 Oracle 函数或过程

    我有一个返回 sys refcursor 的 Oracle 函数 当我使用 Hibernate 调用该函数时 出现以下异常 Hibernate call my function org hibernate exception Generic
  • Java:如何为山区时间创建 TimeZone 对象?

    必须不禁用夏令时 嗯 在这个清单 http en wikipedia org wiki List of tz database time zones在 zoneinfo 时区名称中 有很多声称是 山地时间 找到最适合您想要的那个 然后使用它
  • 了解joda时间PeriodFormatter

    我以为我明白了 但显然我不明白 你能帮我通过这些单元测试吗 Test public void second assertEquals 00 00 01 OurDateTimeFormatter format 1000 Test public
  • 使用 Mockito 模拟某些方法,但不模拟其他方法

    有没有办法使用 Mockito 模拟类中的某些方法 而不模拟其他方法 例如 在这个 诚然是人为的 Stock我想嘲笑的班级getPrice and getQuantity 返回值 如下面的测试片段所示 但我想要getValue 执行乘法 如
  • HashMap 值需要不可变吗?

    我知道 HashMap 中的键需要是不可变的 或者至少确保它们的哈希码 hashCode 不会改变或与另一个具有不同状态的对象发生冲突 但是 HashMap中存储的值是否需要与上面相同 为什么或者为什么不 这个想法是能够改变值 例如在其上调
  • java库维护数据库结构

    我的应用程序一直在开发 所以偶尔 当版本升级时 需要创建 更改 删除一些表 修改一些数据等 通常需要执行一些sql代码 是否有一个 Java 库可用于使我的数据库结构保持最新 通过分析类似 db structure version 信息并执
  • 返回 Java 8 中的通用函数接口

    我想写一种函数工厂 它应该是一个函数 以不同的策略作为参数调用一次 它应该返回一个函数 该函数根据参数选择其中一种策略 该参数将由谓词实现 嗯 最好看看condition3为了更好的理解 问题是 它没有编译 我认为因为编译器无法弄清楚函数式
  • Hamcrest Matchers - 断言列表类型

    问题 我目前正在尝试使用 Hamcrest Matchers 来断言返回的列表类型是特定类型 例如 假设我的服务调用返回以下列表 List
  • Android:无法发送http post

    我一直在绞尽脑汁试图弄清楚如何在 Android 中发送 post 方法 这就是我的代码的样子 public class HomeActivity extends Activity implements OnClickListener pr
  • Java中HashMap和ArrayList的区别?

    在爪哇 ArrayList and HashMap被用作集合 但我不明白我们应该在哪些情况下使用ArrayList以及使用时间HashMap 他们两者之间的主要区别是什么 您具体询问的是 ArrayList 和 HashMap 但我认为要完
  • 在浏览器刷新中刷新检票面板

    我正在开发一个付费角色系统 一旦用户刷新浏览器 我就需要刷新该页面中可用的统计信息 统计信息应该从数据库中获取并显示 但现在它不能正常工作 因为在页面刷新中 java代码不会被调用 而是使用以前的数据加载缓存的页面 我尝试添加以下代码来修复

随机推荐

  • Ajax IndexedDB 删除当前成功上传

    我昨天发布了类似的内容 但它有效 但只删除了数据中的最后一个对象 我想要发生什么 这个ajax上传将处理大量数据 所以我使用indexeddb 这也将在手机上使用 因此 我希望它一次上传一项 如果一项失败 则仅删除数据中的前一项 这样他们就
  • Jest 在没有 webpack 的情况下配置 typescript

    好吧 我正在用 typescript 编写一些 NPM 模块 但我没有使用 Webpack 来编译脚本 我应该如何配置 jest 才能使用打字稿文件正确运行 test spec ts import calc from index test
  • 如何在集合中进行隐式转换?

    假设我有一个隐式转换 implicit def aToB a A B 如何让这种隐式转换适用于列表的元素 如果我有 val listOfA List A 我有一个接受 B 列表的函数 是否可以让 Scala 将所有元素从 A 隐式转换为 B
  • 如何清除EditText的焦点?

    我有一个带有搜索框的活动 EditText 位于顶部 ListView 位于下方 每当活动启动时 EditText 始终具有焦点并调出键盘 该键盘部分覆盖了ListView 没有其他文本视图可以获得焦点 我希望 EditText 仅在用户触
  • 通过 PowerShell 在远程计算机上设置环境变量

    我正在尝试通过 TFS Releasemanagement 通过调用 powershell 脚本来设置环境变量 该脚本应该在计算机上打开远程会话并设置环境变量 param Parameter Mandatory true String Re
  • 在 iOS 8.3 上测试应用程序时出错:Testflight 无法安装应用程序。此请求有错误

    我将 Xcode 更新到 7 2 我向测试人员发送了一个应用程序版本 一名测试人员出现以下错误 Testflight could not install app There was an error with this request 他的
  • 加入并包含在实体框架中

    我有以下 linq toEntity 查询 问题是它似乎没有加载 标签 关系 即使我已经为其添加了一个东西 如果我不加入标签 它工作正常 但我需要这样做 var items from i in db Items Include Tags f
  • 在 Windows 10 上,pipenv install/pipenv shell 无法与 Git Bash 一起使用

    在使用适用于 Windows 10 的 Git Bash 时 我很难让 Pipenv install 和 Pipenv shell 命令正常工作 使用 powershell 时 我能够成功创建一个新的虚拟环境并使用 Pipenv shell
  • 如何查看 Perforce 中的分支是否包含错误修复?

    我是一个新的 perforce 用户 但过去使用过许多其他源代码控制系统 我们使用变更列表来签入每个错误修复 更改列表注释包含错误 ID 因此可以轻松跟踪错误修复的时间签入分店 但是 我看不到一种简单的方法来查找给定错误修复的所有分支并入
  • 发送自动短信

    首先 我们使用 net sql server 我有一位客户对能够在预定时间发送短信的系统感兴趣 除了通过电子邮件网关发送短信之外 我从未做过类似的事情 例如 电子邮件受保护 cdn cgi l email protection 但是 我认为
  • Python 导入令人头疼

    我有以下目录结构 Main py A init py B init py C init py 文件Main py包含代码 from A import B from B import C The init py文件为空 当我跑步时Main p
  • 对向量元素进行向量化循环

    我发现很难对以下问题提出快速解决方案 我有一个观察向量 它表示观察某些现象的时间 example lt c 0 0 0 1 0 1 1 0 0 0 1 0 0 1 1 0 0 1 0 0 现在我想消除特定观察之间的零 假设某种现象会持续下去
  • 数字输入旋转框CSS代码编译为JSS

    我在转换时遇到问题CSS隐藏数字输入旋转框的代码JSS 我的问题是如何正确转换此代码以使其与 JSS 匹配 input webkit outer spin button input webkit inner spin button webk
  • 围绕图中的点绘制圆圈

    我有两个矩阵 timeline 0 0008 0 0012 0 0016 0 0020 0 0024 0 0028 原始数据 79 8400 69 9390 50 0410 55 5082 34 5200 37 4486 31 4237 2
  • Scala 编译器有哪些特殊类型?

    Scala 非常重视如何将看似语言的功能实现为库功能 是否有该语言特别处理的类型列表 是在规范中还是作为实现细节 例如 这包括优化元组的客场匹配 与模式匹配 推导式 try catch 块和其他语言结构相关的特殊约定又如何呢 String
  • CodeBuild 不报告失败的测试

    我正在使用 CodeBuild 构建我的 NPM 项目 我的构建规范中有一个特定的报告组 并且我正在使用 Jest 和npm test命令 当所有测试通过后 将成功报告给 CodeBuild 报告组 但是 如果其中一项测试失败 我会收到错误
  • 为什么 Google Analytics 不跟踪任何事件?

    我已经实现了几乎标准的示例
  • Azure DevOps - 自定义任务 - 具有 Azure 身份验证的 PowerShell

    到目前为止 我使用 Azure PowerShell 任务在 Azure 上下文中执行 PowerShell 脚本 https learn microsoft com en us azure devops pipelines tasks d
  • 大浮点和的精度

    我正在尝试对正递减浮点数的排序数组求和 我发现对它们求和的最佳方法是开始从最低到最高将数字相加 我编写此代码是为了提供一个示例 但是 从最高数字开始的总和更精确 为什么 当然 1 k 2之和应该是f 1 644934066848226 in
  • 在 Java 循环中重新声明变量

    在Java中 我们不能将一个变量与另一个同名变量声明在同一作用域中 int someInteger 3 int someInteger 13 语法错误 无法编译 但是 如果我们将其放入循环中 for int i 0 i lt 10 i in