Roh*_*hah 1 java assert javafx
在javaFx中,我们在每个生成的控制器类的initialize方法中看到以下语句,对于每个使用fxid的控件.
assert type != null : "fx:id=\"type\" was not injected: check your FXML file 'FinancialReport.fxml'.";
Run Code Online (Sandbox Code Playgroud)
我可以理解,该语句是为了确保在加载此fxml时,fx:id的控件存在于fxml布局文件中,如果控件不存在则会抛出异常并退出fxml加载过程.
但随后提到这一点,我了解到不建议在生产代码中使用断言.再次学习本教程,似乎断言很有用,特别是在调试时(但不能用于验证公共方法的参数).
我需要更多以下知识:
在生产代码中使用断言进行输入验证和此类目的是否可以?
不.请参阅您发布的第一个链接(实际上说,断言不应该在生产代码中触发,而不是永远不会使用它们):默认情况下,在运行JVM时,断言甚至都没有打开.所以你的验证大部分时间都会失败.断言特别是作为调试工具 - 检查您的代码是否正确.在生成的控制器代码中添加的断言是很好的示例:它们检查@FXML控制器中的注释字段是否FXML具有匹配fx:id属性的文件中的元素.如果失败,则是编程错误,而不是数据验证错误.
当布尔表达式变为false时,我们可以做一些其他的事情吗,就像一些替代方法调用或某事(一个例子会很好).
只是使用一个if (...) { ... } else { ... }构造?
| 归档时间: |
|
| 查看次数: |
1112 次 |
| 最近记录: |