gpt4 book ai didi

java - 更新 ComboBox 的项目后发生 NullPointerException

转载 作者:行者123 更新时间:2023-12-01 18:03:47 25 4
gpt4 key购买 nike

我被这个问题困扰,不知道如何继续。

我在 MVC 方案中设置了 JavaFX 应用程序。我有我的模型 GameAchievement 及其各自的 ControllerView 类,GameControllerAchievementControllerGameViewAchievementView。我还有一个用于 GameAchievementDAO

现在,在 AchievementController 中的函数 refreshData() 中,我抛出以下错误跟踪:

https://pastebin.com/4TWZ6kjw

我不明白为什么会发生这种情况。

步骤说明:

打开游戏并将场景从 GameView 切换到 AchievementView 时,我在 `

中调用 refreshData() 函数

AchievementController.onSwitchView()

并且它运行良好。然后我通过

添加新成就后

AchievementController.handleAddButton()

方法,它抛出上述跟踪,由 the line 触发在 refreshData() 中显示

view.getGamePicker().setItems(gameList)

我不明白为什么会发生这种情况。我用调试器检查过,viewview.getGamePicker()gameList都是非空的。 gameList 是一个列表,其中包含它应该包含的确切对象,这些对象也不为 null。

我知道这实际上并不是一个最小的可重现示例,但我真的不知道如何确定您实际需要的行。我完全被难住了!如果您需要整个项目以便可以在本地运行它,请检查此处:https://github.com/kemmel-dev/TestRepo

(我认为)相关类(class)的链接:

您可以通过以下方式重现此行为:启动后在第一个屏幕中添加一个或多个游戏,然后打开您刚刚添加的游戏之一,并尝试向该游戏添加成就。

最佳答案

我仍然不完全确定为什么,但使用 List.copyOf()在我的DAO s 导致了这个问题。显然是setItems()方法ComboBoxFXCollections.ObservableList()方法不能很好地接收 List.copyOf()正如它的论点。

将其替换为 Collections.unmodifiableListnew ArrayList<>(objects)工作...

关于java - 更新 ComboBox 的项目后发生 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60591428/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com