当前位置: 首页 > 知识库问答 >
问题:

JavaFx和一般情况下的断言

柳玄裳
2023-03-14

在javaFx中,对于每个带有FXID的控件,我们可以在每个生成的控制器类的initialize方法中看到以下语句。

assert type != null : "fx:id=\"type\" was not injected: check your FXML file 'FinancialReport.fxml'.";

我可以理解,该语句是为了确保在加载这个fxml时,带有这个fx:id的控件出现在fxml布局文件中,如果该控件不存在,它将抛出异常并退出fxml加载过程。

    null

共有1个答案

慕容烨
2023-03-14

在生产代码中,使用断言进行输入验证和此类目的可以吗?

不,请参考您发布的第一个链接(它实际上说,在生产代码中永远不应该触发断言,而不是永远不应该使用断言):在运行JVM时,断言在默认情况下甚至不打开。所以你的验证大部分时间都会失败。断言是作为一个调试工具而存在的--检查代码是否正确。在生成的控制器代码中添加的断言就是很好的例子:它们检查控制器中的@fxml-注释字段是否在fxml文件中具有与fx:id属性匹配的元素。如果失败,这是编程错误,而不是数据验证错误。

当布尔表达式变为false时,我们是否可以做一些其他的事情,比如一些替代的方法调用或其他事情(一个示例会很好)。

只要使用如果(...){...}else{...}构造?

 类似资料:
  • 问题内容: 我有一段代码的行为会有所不同,具体取决于我是通过字典获取转换因子还是直接使用它们。 以下代码将打印 但是,如果你更换用,并用它将打印 首先让我说我很确定这里发生了什么。我以前在C中看到过它,但是在Python中却从未见过,但是自从Python在C中实现以来,我们已经看到了它。 我知道浮点数将更改从CPU寄存器到缓存以及返回的值。我知道比较两个相等的变量应该返回false,如果其中一个被

  • 问题内容: 有时,当我看到自己的日志记录代码时,我想知道自己是否做对了。可能没有确切的答案,但是我有以下担忧: 图书馆课 我有几个库类可能记录一些消息。致命错误被报告为例外。当前,我的类中有一个静态记录器实例,其类名称为记录名称。(Log4j的:) 这是正确的方法吗?也许该库类的用户不需要我的实现中的任何消息,或者想要将它们重定向到应用程序特定的日志。我是否应该允许用户从“外部世界”设置记录器?您

  • 问题内容: 在我目前的工作中,我经常使用Numpy和列表理解,并且为了获得最佳性能,我有以下问题: 如果我按如下方式创建一个Numpy数组,在幕后实际上会发生什么?: 我的猜测是python首先创建一个包含值的普通列表,然后使用列表大小分配一个numpy数组,然后将值复制到此新数组中。这是正确的,还是解释器足够聪明,可以意识到列表只是中间的,而是直接复制值? 同样,如果我希望使用numpy.fro

  • 在我的代码中进行一系列计算后,我有了一个,其值为 然后,我需要将这个乘以,我希望计算出的值为

  • 我正在使用Scene Builder(V11.0.0)为JavaFX(v12)中的场景创建FXML文件,但是,尽管指示所有容器为首选的宽度和高度,但呈现的场景(正如在Scene Builder中看到的,以及作为加载这些FXML文件的JavaFX应用程序运行时看到的那样)在右侧和底部边缘被裁剪,因此节点位被砍掉。 在Scene Builder中,渲染器似乎必须知道场景不符合允许的边界,因为编辑器显示

  • 我正在遵循Oracle的教程在JavaFX中创建TableView。在这个截图中,我复制并粘贴了代码,发现了几个错误,教程中没有提到这些错误。 TableView上的警告显示: TableView是原始类型。对泛型类型TableView的引用 表列上的警告说: 表列是一个原始类型。对泛型类型TableCol列的引用 addAll方法上的警告是: 类型安全:方法addAll(Object…)属于原始