Java - 如何更改“本地”?事件监听器中的变量

2023-12-03

有一个简短的问题,我希望有人能回答。基本上我有一个字符串变量,需要根据组合框中的值进行更改,该组合框中附加了一个事件侦听器。但是,如果我将字符串定为最终的,那么它就无法更改,但如果我不将其定为最终的,那么 Eclipse 就会抱怨它不是最终的。最好的(也是最简单的)解决办法是什么?

代码如下

final String dialogOutCome = "";

//create a listener for the combo box
Listener selection = new Listener() {

    public void handleEvent(Event event) {
    //get the value from the combo box
    String comboVal = combo.getText();

    switch (comboVal) {
         case "A": dialogOutCome = "a";
         case "B": dialogOutCome = "b";
         case "C": dialogOutCome = "c";
         case "D": dialogOutCome = "d";
    }
   }
};

你不能。

考虑一下:

  • 只要局部变量在其声明的方法运行期间就存在。
  • 一旦该方法调用结束(通常是因为该方法存在),变量就会消失
  • 听者可以(而且通常)活得更久

那么当方法已经返回并且侦听器尝试修改局部变量时会发生什么?

因为这个问题没有一个很好的答案,所以他们决定通过不允许访问非final局部变量。

有两种方法可以解决这个问题:

  • 尝试更改字段而不是局部变量(这可能也更适合侦听器的生命周期)or
  • use a final局部变量,您可以更改该变量content(例如List or a String[]与单个元素)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java - 如何更改“本地”?事件监听器中的变量 的相关文章

  • java本地时间格式不带年份

    我喜欢将本地时间格式格式化为不带年份的字符串 目前我可以显示包含年份的本地格式 java text DateFormat df java text DateFormat getDateInstance java text DateForma
  • 如何调试使用maven构建的android应用程序

    我目前正在尝试从 Eclipse 调试我的设备上的 Android 应用程序 设备已添加 我可以在控制台和 Eclipse 中看到它 控制台 Windows adb devices List of devices attached 0019
  • 如何监听场景图节点中的WindowEvent.WINDOW_SHOWN?

    似乎 WindowEvent WINDOW SHOWN 永远不会在场景图中的任何节点上分派 也没有 我能找到的 知道节点何时可见 渲染 显示 例如 测试启动器 java package com example javafx event im
  • 运行单个 Java 线程的双核 CPU 利用率[重复]

    这个问题在这里已经有答案了 可能的重复 多线程 Java 应用程序能否很好地利用多核机器 https stackoverflow com questions 1649402 would a multithreaded java applic
  • IntelliJ Ultimate 在 Play 2.3 (Java) 项目测试中找不到路由

    虽然我的测试运行得很好 但 IntelliJ 抱怨它找不到路由对象 并且代码自动完成无法工作 我已经查看了所有文档 这应该可以工作 这是 IntelliJ 的报告内容 关于我的项目配置可能有什么问题有什么想法吗 这很可能与以下事实有关 ro
  • 具有最小刻度的图表的漂亮标签算法

    我需要手动计算图表的刻度标签和刻度范围 我知道漂亮刻度的 标准 算法 参见 我也知道这个Java实现 http erison blogspot nl 2011 07 algorithm for optimal scaling on char
  • 到底什么是哈希冲突

    HashMap 中的哈希冲突或哈希冲突并不是一个新主题 我遇到过几个博客和讨论板 以模糊且详细的方式解释如何产生哈希冲突或如何避免它 我最近在一次采访中遇到了这个问题 我有很多事情要解释 但我认为很难准确地给出正确的解释 抱歉 如果我的问题
  • 将 RequestBody json 转换为对象 - Spring Boot

    我是 java 开发的初学者 但之前有 PHP 和 Python 等编程语言的经验 对于如何进行 Spring Boot 的开发几乎没有什么困惑 我正在开发一个rest API 它有以下请求 key value key1 value1 pl
  • Tomcat - 多个 webapps 文件夹

    是否可以有多个文件夹来放置要部署的应用程序 这些是如何定义的 是否可以将一个文件夹限制为仅是 domain com 的应用程序 而不是其他域 Thanks 看一眼conf server xml
  • 保存下拉列表中的值

    这是我的情况 我有 2 页 一页用于选择值 一页用于编辑与该值关联的数据库相关内容 现在 我对如何将从下拉列表中选择的值保存到 PHP 的变量中一无所知 并且已经进行了相当多的研究 有任何想法吗 HTML
  • 维护插入顺序的并发集合[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个可以维护插入顺序的并发列表 有人有什么好的推荐吗 我看一些番石榴 例如SetFromMa
  • Android 反向地理编码不适用于华为设备

    我正在尝试通过这段代码反转地理编码纬度 经度 Geocoder geocoder new Geocoder context Locale ENGLISH try List
  • 如何找到 Oracle 数据库的 URL?

    如何找到 Oracle 数据库的 URL 和端口 Example jdbc oracle thin host port dbName 用户名 密码 是否有我可以查看的 SQL 命令或日志 配置文件 对于甲骨文来说 有一个tnsnames o
  • 有界通配符相关的编译器错误

    我想知道这段代码有什么问题 Map 但我试图说得更具体 这个问题在这个旧的 Apache 线程 ht
  • java.lang.ClassCastException: [B 无法转换为 java.lang.String

    我编写了一个带有字段 LoginId 和密码的实体类 我使用 AES ENCRYPT 加密密码并将其存储在数据库中 我只想检索已解密的密码 所以 我使用 AES DECRYPT 使用本机查询是在 OPen JPA 2 0 中 我写的查询是
  • Java 空值检查

    我有一个thread1 if object null object play 和另一个thread2可以写null into object随时参考 我将同时运行这些线程 我知道thread2可以重写object后参考null检查并会抛出Nu
  • 将字符串转换为字符并按降序排序(ascii)

    我正在创建一个程序 该程序将使用户输入整数 一个接一个 存储在数组中并按降序显示整数 该程序还要求用户输入一个字符串 使用以下命令将其转换为字符string toCharArray 我已经正确地按降序显示整数 问题是我不知道如何按降序显示字
  • logcat 信息出现在 Android Studio 的“运行”选项卡中

    我的 android studio 运行选项卡很简单 然后它变得更难并给我更多信息 例如 logcat 中的信息 如何禁用或删除第二张图片中出现的更多信息并返回到第一张图片中的第一个外观 我只需要正在运行的 flutter 应用程序的日志输
  • 用 lambda 表达式替换匿名函数

    我在 Java 8 映射操作中传递一个函数 Intellij 告诉我它可以用 lambda 表达式替换 但我不知道如何在不创建中间对象结构的情况下做到这一点 这就是我所做的 List
  • 混合语言源目录布局

    我们正在运行一个使用多种不同语言的大型项目 Java Python PHP SQL 和 Perl 到目前为止 人们一直在自己的私有存储库中工作 但现在我们希望将整个项目合并到一个存储库中 现在的问题是 目录结构应该是什么样的 我们应该为每种

随机推荐

  • 如何使用 .NET 从十六进制颜色代码获取颜色?

    如何从十六进制颜色代码中获取颜色 例如 FFDFD991 我正在读取文件并获得十六进制颜色代码 我需要创建相应的System Windows Media Color十六进制颜色代码的实例 框架中有内置方法可以做到这一点吗 我假设这是一个 A
  • MPI 和 C 结构

    我必须承认 当我看到使用 MPI 传输一个 C 结构体需要多少行代码时 我感到非常震惊 在什么情况下可以使用预定义的数据类型简单地传输结构MPI CHAR 考虑以下示例 struct particle double x double y l
  • PHP switch 语句变量范围

    在 PHP 中 switch 语句中的变量作用域是如何处理的 例如 以这个假设的例子为例 someVariable 0 switch something case 1 someVariable 1 break case 2 someVari
  • 如何在maven多模块项目中仅运行父pom.xml

    我有 Maven 多模块项目 在父级 我有一些java文件 在父 pom xml 中 在打包阶段我做了一些事情 通常 当我在父级别运行 mvn package 时 父 pom 的 package 阶段将运行 并且所有模块也将被打包 我正在寻
  • 将数据从 SAP 提取到 SQL Server

    我正在使用 SSIS 包将 SAP 数据库表中的数据提取到 SQL Server 表中 我正在使用 OLEDB 源 目标连接来实现此目的 现在的问题是 SAP 中的一个表有 500 万条记录 需要大约 2 小时才能将这些数据提取到我的 SQ
  • 使用多处理时 cv2.Boost 的 Pickle 异常

    我正在从事名为 Faciel Actions UnitsDetection 的项目 我正在使用 python2 7 和 opencv 2 4 错误 pickle PicklingError Can t pickle
  • 跨多个数据库的连接查询语法错误

    我有2个数据库 即db1 db2 我需要一个查询从这些数据库 db1 db2 中获取数据 每个数据库都有2个表 优惠 发票 在 db1 concessions gt concession 中是主键 db1 invoicing gt 优惠编号
  • 限制正则​​表达式中的字符长度

    我使用以下正则表达式 不限制任何字符长度 var test a z A Z 0 9 lt gt Works fine 在上面 当我尝试将字符长度限制为 15 时 如下所示 它会抛出错误 var test a z A Z 0 9 lt gt
  • 使用json从PHP-MySql服务器获取图像到Android

    我正在开发一个应用程序 它从 php 服务器下载图像并在图像视图中显示图像 但是当我从 php 页面接收图像时 if empty result if mysql num rows result gt 0 result mysql fetch
  • 如何根据部分文件名检查文件是否存在?

    我试图检查我的文件夹中是否存在文件 但我只有部分文件名来检查它 有没有办法检查它 例如我有以下内容 God of War 文件名实际上称为 God of War PSP USA rar file exists 函数是否有某种类似的功能 或者
  • 如何使用python OpenCV找到单通道图像中与特定值匹配的最大连通分量?

    因此 我有一个主要为 0 背景 的单通道图像 以及前景像素的一些值 如 20 21 22 非零前景像素大多与具有相同值的其他前景像素聚集在一起 然而 图像中存在一些噪点 为了消除噪音 我想使用连通分量分析 并且对于每个值 在本例中为 20
  • 纸浆 LP 最小化配制“选择一种类型”约束

    下面的代码用于运行 LP 最小化问题 其中我们有某些食物 它们的营养价值和成本 该代码当前在所呈现的状态下工作 我正在尝试添加另一种类型的约束 我将所有食物分为不同的类别 早餐 午餐 晚餐 零食 我想创建一个约束 其中Only 1早餐 午餐
  • 在 BIML 中的数据流之前创建表

    我正在使用 BIML 和 BIDSHelper 创建 SSIS 包 我正在尝试将数据从 csv 导入到 sql server 我想在数据流发生之前在目标数据库中创建表 这是我的代码
  • NSUserDefaults 与 sqlite3

    我有一个小型 iPhone 应用程序 用于存储对象列表 用户可以添加和删除对象 但此列表将仍然相当小 大多数用户将有 10 30 个对象 NSUserDefaults看起来更容易合作 但会sqlite3能更快吗 只有30条 记录 会有什么明
  • 是否可以嵌套 Angular2 应用程序

    假设我想构建一个可以插入第三方页面的 Angular2 应用程序 第三方页面可能已经使用 Angular2 可能有不同的版本 是否可以在第三方应用程序中引导我的 Angular 2 应用程序
  • Java 交叉编译 - 最新 JDK 的好处

    我维护一个 Java 应用程序 在分发它之前我总是使用 JDK 1 6 进行编译 因为这是我的应用程序所需的最低版本 我不使用任何更新的功能 我不认为在更高版本中编译它有什么意义 否则旧的 JRE 将无法运行它 即使用 Java 1 6 的
  • 变量的前后增量操作在 TC 和 gcc 上给出不同的输出[重复]

    这个问题在这里已经有答案了 这是我的简单代码 include
  • 如何从javascript同步调用indexeddb方法

    我有一种方法说method1在 javascript 中 有另一种方法说method2 call method2在 method2 调用之后返回 method1 中需要的一个值 var userObj first Key 1 value s
  • 尝试保存图像时出现异常

    启动 Java 应用程序时 我在尝试保存图像时遇到异常 然而 在 Eclipse 中 一切都工作正常 该应用程序是使用 fatjar 构建的 并且还选择了导出所需的库 jar imageio jar 和 ij jar 我尝试使用 Image
  • Java - 如何更改“本地”?事件监听器中的变量

    有一个简短的问题 我希望有人能回答 基本上我有一个字符串变量 需要根据组合框中的值进行更改 该组合框中附加了一个事件侦听器 但是 如果我将字符串定为最终的 那么它就无法更改 但如果我不将其定为最终的 那么 Eclipse 就会抱怨它不是最终