Java8 - “有效最终”

2023-12-28

我正在使用 RxVertx,它是一种 RxJava 和 Java8,但出现编译错误。

这是我的代码:

public rx.Observable<Game> findGame(long templateId, GameModelType game_model, GameStateType state) {

return context.findGame(templateId, state)
    .flatMap(new Func1<RxMessage<byte[]>, rx.Observable<Game>>() {

        @Override
        public Observable<Game> call(RxMessage<byte[]> gameRawReply) {

            Game game = null;

            switch(game_model) {

                case SINGLE: {

                    ebs.subscribe(new Action1<RxMessage<byte[]>>() {

                        @Override
                        public void call(RxMessage<byte[]> t1) {

                            if(!singleGame.contains(0) {
                                game = new Game();       // ERROR is at this line
                                singleGames.put(0, game);
                            } else {
                              game = singleGames.get(0); // ERROR is at this line
                            }
                        }
                    });
                }
            }

            return rx.Observable.from(game);
        }
    });
}

编译错误是: “在封闭范围内定义的局部变量游戏必须是最终的或有效的最终”

我无法将“游戏”定义为最终的,因为我进行分配\设置并在函数末尾返回它。

我怎样才能让这段代码编译?

Thanks.


我有一个Holder我在这种情况下使用的类。

/**
 * Make a final one of these to hold non-final things in.
 *
 * @param <T>
 */
public class Holder<T> {
  private T held = null;

  public Holder() {
  }

  public Holder(T it) {
    held = it;
  }

  public void hold(T it) {
    held = it;
  }

  public T held() {
    return held;
  }

  public boolean isEmpty() {
    return held == null;
  }

  @Override
  public String toString() {
    return String.valueOf(held);
  }

}

然后你可以做类似的事情:

final Holder<Game> theGame = new Holder<>();
...

theGame.hold(myGame);
...
{
  // Access the game through the `final Holder`
  theGame.held() ....
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java8 - “有效最终” 的相关文章

  • 如何自定义BlockingQueue的阻塞行为

    我想创建一个阻塞队列 它根据自定义规则而不是队列中的项目数量来阻止生产者 例如 生产者生成一些文件并放入队列中 消费者经过一番分析后将它们转移到特定位置 对于上述场景 如果队列中的总文件大小达到某个阈值 我希望生产者等待生成新文件 如果总大
  • JavaEE 8 教程,在 hello1 项目上部署失败

    我正在尝试学习 Java EE 8 我遵循了官方指南https javaee github io tutorial https javaee github io tutorial 但我有这个问题 cargo maven2 plugin 1
  • JPanel透明背景和显示元素[重复]

    这个问题在这里已经有答案了 我插入一个背景图e 变成 aJPanel但一些界面元素消失了 以下 Java Swing 元素不会出现 标签标题 标签 usuario 标签 密码 按钮加速器 你能否使图像透明或元素不透明 setOpaque f
  • Java Swing:清除JList而不触发监听器

    我的情况如下 我有一个 JList 只要在列表中进行选择 它就会触发搜索 使用 ListSelectionListener 我正在尝试使用以下命令重置列表上的选择list clearSelection 这样做的问题是使用clearSelec
  • 以编程方式将 PEM 证书导入 Java KeyStore

    我有一个由两个文件 crt 和 key 组成的客户端证书 我希望将其导入到 java KeyStore 中 然后在 SSLContext 中使用 以通过 Apache 的 HTTPClient 发送 HTTP 请求 但是 我似乎找不到一种以
  • .java 和 .scala 类之间是否可能存在循环依赖?

    假设我在 java 文件中定义了类 A 在 scala 文件中定义了类 B A 类使用 B 类 B 类使用 A 类 如果我使用 java 编译器 则会出现编译错误 因为 B 类尚未编译 如果我使用scala编译器A类将找不到 有没有可以同时
  • 在气球内显示带有照片的多个地标的最佳做法是什么?

    我有一个项目如下 从手机上拍摄几张照片 将照片保存在网络系统中 然后将照片显示在其中的谷歌地球上 我读过很多文章 但它们都使用 fetchKml 我读过的一篇好文章是使用 php 但使用 fetchKml 我不知道是否可以使用 parseK
  • 如何在 OpenAPI 3.0 中定义字节数组

    我正在将 API 从 Swagger 2 0 迁移到 OpenAPI 3 0 在 DTO 中 我有一个指定为字节数组的字段 Swagger 对 DTO 的定义 Job type object properties body type str
  • Maven 多模块项目结构问题

    自从过去几周构建我的 Maven 多模块项目以来 这是我的一次有趣的经历 当我决定使用 Maven 进行构建生命周期管理时 我有几个原因希望选择 Maven A 大多数开发团队都是分开的 这样每个团队都可以在项目中的单独模块上工作 例如团队
  • 独占锁定ConcurrentHashMap

    我知道不可能锁定 ConcurrentHashMap 进行独占访问 但是 我找不到原因 是因为构成CHM的 Segment 没有被api公开吗 据推测 如果是的话 客户端代码可以执行 交接 锁定 Cheers 我知道不可能锁定 Concur
  • getClassLoader().getResource() 返回 null

    我有这个测试应用程序 import java applet import java awt import java net URL public class Test extends Applet public void init URL
  • 您能让 Tomcat 6 stdout.log 文件表现得像 log4j DailyRollingFileAppender 吗?

    我们使用的是 Tomcat 6 的 Windows 安装 默认情况下 我们应用程序的 log4j 输出将转到 catalina base logs stdout log 文件 该日志文件仅在我们重新启动 Tomcat 时滚动 并且文件名始终
  • java JFileChooser 文件大小过滤器

    我知道我可以按文件类型进行过滤 但是可以按文件大小进行过滤吗 例如 JFileChooser 仅显示 3 MB 以内的图片 简短的回答应该是 你尝试过什么 长答案是肯定的 JFileChooser fc new JFileChooser f
  • 在 Mac 上使用 JRE 打开 jar 文件

    我有一个 jar 文件 旨在通过命令行运行 我不打算在运行应用程序的机器上进行任何java开发 我的思考过程是 因此我应该只需要JRE而不是JDK 此外 JDK 大约是 JRE 的 4 倍 我不想下载它 在 Mac 上安装 JRE 时 它不
  • java 属性文件作为枚举

    是否可以将属性文件转换为枚举 我有一个包含很多设置的属性文件 例如 equipment height equipment widht equipment depth and many more like this and not all a
  • Java中的DRY原则[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我一直在读关于DRY https en wikipedia org wiki Don 27t repeat yourself原则 虽然看起来
  • Scala repl 抛出错误

    当我打字时scala在终端上启动 repl 它会抛出此错误 scala gt init error error while loading AnnotatedElement class file usr lib jvm java 8 ora
  • Android同步onSensorChanged?

    这是我的问题的后续 Android线程可运行性能 https stackoverflow com questions 36395440 android thread runnable performance 我在理解应用程序的同步方法时遇到
  • JDK 7 的快速调试/调试构建

    我正在寻找 JDK 的调试 或者我猜他们称之为快速调试构建 以启用在运行时生成的打印程序集以及查找性能问题时所需的其他诊断 就目前情况而言 我似乎找不到可以直接使用的 现成的 快速调试构建二进制包 有人可以帮我提供下载链接 或者至少提供有关
  • 将隐藏(生物识别)数据附加到 pdf 上的数字签名

    我想知道是否可以使用 iText 我用于签名 或 Java 中的其他工具在 pdf 上添加生物识别数据 我会更好地解释一下 在手写板上签名时 我会收集签名信息 例如笔压 签名速度等 我想将这些信息 java中的变量 与pdf上的签名一起存储

随机推荐

  • Rails Mailer Net::SMTPServerBusy

    在我的 Rails 站点上 当我尝试通过 GMail 发送邮件时 它工作得很好 但是当我尝试通过 MandrillApp 发送它时 它给出以下错误 RController create 是调用交付命令的地方 Net SMTPServerBu
  • 合并排序数组[重复]

    这个问题在这里已经有答案了 可能的重复 合并两个排序列表 https stackoverflow com questions 2348374 merging two sorted lists N路合并算法 https stackoverfl
  • 一个大的包含文件还是几个较小的包含文件?

    我正在编写一些jsp 我想知道是否最好有一个大的包含文件 我将包含在每个页面中 或者几个较小的文件 我将根据需要仅包含在某些页面上 任何给定页面最多只需要调用几个方法 我主要关心的是性能 其次是维护 我们正在使用 jsp include 指
  • 通过接口使用 Function<> ?

    我已经有一个现有的泛型类 public class Foo
  • 如何一点点构建一个Linq to Sql where子句?

    我正在参数类中传递一组查询字符串参数 用于查询图像数据库 每次调用时 某些参数可能为空 所以在 sql 中我会建立这样的查询 if parameters Value1 null sql Append sql where clause if
  • Android 位图内存问题 - ARGB_4444 与 RGB_565

    将图像加载到位图中时 哪种方法消耗更多内存 ARGB 4444 与 RGB 565 Thanks 它们占用相同数量的内存 看到这些数字了吗 它们告诉您每个分量 A R G B 的位数 将它们相加即可得到每个像素的总位数 不过 如果您不需要这
  • 使用 Win32 的带有主题的透明单选按钮控件

    我正在尝试在启用主题时仅使用 Win32 制作具有透明背景的单选按钮控件 这样做的原因是允许将单选按钮放置在图像上并显示图像 而不是灰色的默认控件背景 开箱即用的是 该控件将具有灰色的默认控件背景以及通过处理以下任一内容来更改此背景的标准方
  • 查找曲线中的增加和减少趋势 MATLAB

    a 2 3 6 7 2 1 0 01 6 8 10 12 15 18 9 6 5 4 2 这是一个数组 我需要提取增加和减少趋势开始的确切值 数组的输出a将 2 first element 2 6 9 a 2 3 6 7 2 1 0 01
  • svn check out 有问题无法读取块大小

    我遇到了以下错误 它检查了一段时间然后向我抛出一个错误 SVN 1 6 请让我知道具体应该是什么配置 REPORT of svn svn vcc default Could not read chunk size connection wa
  • 在 OnLoad 或 OnInit 期间动态添加控件?

    我想根据某些特定条件向页面添加更多控件 这些控件不需要任何 ViewState 或绑定数据 它就像静态链接一样简单 我想知道我可以在哪里编写代码 里面OnLoad or OnInit方法 为什么 如果我把它放在里面OnLoad 我应该添加以
  • Spark SQL + Window + Streaming 问题 - 使用 Spark Streaming 运行时,Spark SQL 查询执行时间较长

    我们期待使用 Spark Streaming 带有 Flume 和带有窗口的 Spark SQL 来实现一个用例 使我们能够对一组数据执行 CEP 计算 有关如何捕获和使用数据的信息 请参阅下文 这个想法是使用 SQL 来执行一些符合某些条
  • 上传/部署 zip 文件时,不会创建 .platform 挂钩中的 AWS Elastic Beanstalk 自定义 nginx .conf 文件

    我正在将 Node JS Express JS 应用程序部署到 AWS Elastic Beanstalk 环境 我正在创建自定义 nginx 配置文件来更改设置 为此 我创建了以下文件 project root directory pla
  • 在 Azure Functions 中运行 Python + OpenCV + dlib

    我创建了一个图像处理脚本Python with dlib and OpenCV 我想知道如何将此功能引入 Azure Functions 以便可以通过 API 调用该脚本 作为Python仍处于预览状态Azure Functions我想知道
  • Laravel 框架中的分割字符串

    如何在 Laravel 框架中拆分字符串并将其显示在表格中 我从数据库中获取数据 该数据由一列组成 但在字符串中 例如 1234 normal r4r3r2 我想用逗号将其分成三个不同的部分 值 并将其显示在三列的表格中 目前 我只能显示数
  • Slack API 不返回私人频道

    我正在尝试获取 Slack 中的私人频道列表 基于每个用户即可 但我在查看此信息时遇到问题 我最初将应用程序安装到 Slack 中的工作区中 并获得了表单中的 OAuth 令牌xoxp 4 应用程序 OAuth 令牌 当我尝试使用 slac
  • C# - 删除文本文件中的重复行

    有人可以演示如何检查文件中的重复行 然后删除任何重复项 或者覆盖现有文件 或者创建一个删除重复行的新文件 如果您使用 NET4 那么您可以使用以下组合File ReadLines http msdn microsoft com en us
  • 无法签出 git 分支 - 需要提交更改,但不存在任何更改

    我遇到一个问题 我正在尝试结帐分支 但我不能 因为 您对以下文件的本地更改将被覆盖 查看 lib file php 请在切换分支之前提交您的更改或隐藏它们 正在中止 好的 所以我运行 git status 我得到 在分支当前分支上没有任何可
  • 当它编译得很好时,“void main”怎么会无效呢?

    我发现关于int main的定义 但不是void mainC 编程语言简介 我尝试阅读c 编程语言简介中写的所有文章 void main在 C 或 C 中从未有效 C 11 3 6 1 2 实现不应预先定义main功能 该函数不得超载 它应
  • 仅从网络更新 github fork(换句话说,没有 GIT!)

    我该如何和 或是否可以更新 pull rebase reset hard branchname github 上的一个项目的分支在网站上 没有吉特 这是具体问题 我只是通过非常慢的互联网连接 400meg 的更改 将上游更改拉到我的本地计算
  • Java8 - “有效最终”

    我正在使用 RxVertx 它是一种 RxJava 和 Java8 但出现编译错误 这是我的代码 public rx Observable