gpt4 book ai didi

java - 比较搜索中的 SimpleStringProperty

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

我有一个填充在场景中的 TableView。我正在搜索对象属性以查看它们是否匹配,并且该属性返回 StringProperty [值:3]。我只是想找到完成此比较的正确方法。

这是代码:

@FXML
public void searchParts(ActionEvent event) throws IOException{
System.out.println("Searching for part: " + searchPart.getText());
String partSearchable = searchPart.getText();
for (int i = 0; i < parts.size(); i++) {
System.out.println(parts.get(i).nameProperty());

if (parts.get(i).nameProperty().equals(new SimpleStringProperty(partSearchable))) {
partsList.clear();
partsList.add(parts.get(i));
populateTable();
break;
}
}
partsList.clear();
populateTable();
}

这是部件类中的 getter 方法:

public SimpleStringProperty nameProperty(){
return new SimpleStringProperty(name.get());
}

进行这种比较的正确方法是什么?

最佳答案

首先,您不应在属性访问器方法中创建新属性。您还应该将该类型公开为 StringProperty,而不是 SimpleStringProperty

做:

public StringProperty nameProperty() {
return name ;
}

当您想要执行比较时,请将属性的内容与感兴趣的字符串进行比较:

if (parts.get(i).nameProperty().get().equals(partSearchable)) { ... }

如果您还在类中定义了常用的 get 方法:

public final String getName() {
return nameProperty().get();
}

// and, though it's irrelevant to this question, usually also
public final void setName(String name) {
nameProperty().set(name);
}

那么你当然可以这样做

if (parts.get(i).getName().equals(partSearchable)) { ... }

关于java - 比较搜索中的 SimpleStringProperty,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42611296/

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