问题:我无法调试基于 JavaFX 11 的 Maven 项目,该项目是使用 Eclipse IDE 2019-03 (4.11.0) 编写和启动的,使用此处建议的方法并在相关问题中使用。
示例代码:
public class HowdyJFX extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
final String javaVersion = System.getProperty("java.version");
final String javafxVersion = System.getProperty("javafx.version");
final Label l = new Label("Hello, JavaFX " + javafxVersion + ", running on Java " + javaVersion + ".");
final Scene scene = new Scene(new StackPane(l), 640, 480);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch();
} …Run Code Online (Sandbox Code Playgroud) 当以相同的顺序应用于相同的一系列条件时,||和 在Stream.of(..).anyMatch(e-> e==true)功能上是否相同?
任务:对一系列条件运行快速测试以确定是否有任何条件为真。
可能的解决方案: - 用“或”符号 ( ||)分隔每个条件 - 将每个条件包含在Stream.of(..)附加的语句中.anyMatch(e-> e==true)
anyMatch(..)状态文档“返回此流的任何元素是否与提供的谓词匹配。如果不是确定结果所必需的,则不得评估所有元素的谓词[强调]。”
基于这种说法,我的理解是,上面指出的两个解决方案在功能上是相同的,因此如果 4 组中的第二个元素是第一个元素 ,则true不会评估元素 3 和 4。
然而,在实践中,这似乎不是真的。考虑以下 where itemis null、emptyistrue和UtilMethods.isEmpty(..)is 是一个自定义库方法,用于测试给定参数是null还是空String(""):
@Override
protected void updateItem(Pair<K, V> item, boolean empty) {
super.updateItem(item, empty);
boolean test1 = empty
|| Objects.isNull(item)
|| UtilMethods.isEmpty(item.toString())
|| Objects.isNull(item.getValue());
boolean test2 = Stream.of(
empty,
isNull(item),
UtilMethods.isEmpty(item.toString()),
isNull(item.getValue()))
.anyMatch(e …Run Code Online (Sandbox Code Playgroud)