我创建了一个应用程序,并且我为ObservableList
创建了模型我想调用集合.contains()
这个方法需要equals()
,但这总是返回false。我只在equals方法中放入一个字段。当我在if语句中比较使用getter方法时,它会像我期望的那样返回true。JavaFx模型等于总是返回false
import java.util.Objects;
import javafx.beans.InvalidationListener;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.image.Image;
public class Client implements ObservableValue {
private final SimpleStringProperty remoteAddress;
private final SimpleStringProperty userName;
private final boolean connected = true;
private final ObservableList<String> logs
= FXCollections.observableArrayList();
private final ObservableList<Image> imageLogs
= FXCollections.observableArrayList();
public Client(String remoteAddress, String userName) {
this.remoteAddress = new SimpleStringProperty(remoteAddress);
this.userName = new SimpleStringProperty(userName);
}
public SimpleStringProperty remoteAddressProperty() {
return remoteAddress;
}
public SimpleStringProperty userNameProperty() {
return userName;
}
public final String getRemoteAddress() {
return remoteAddress.get();
}
public final void setRemoteAddress(String name) {
this.remoteAddress.set(name);
}
public final String getUserName() {
return userName.get();
}
public final void setUserName(String name) {
this.userName.set(name);
}
public ObservableList<String> getLogs() {
return logs;
}
public ObservableList<Image> getImageLogs() {
return imageLogs;
}
@Override
public boolean equals(Object obj) {
if (obj == null || getClass() != obj.getClass()) {
return false;
}
return this.remoteAddress == ((Client) obj).remoteAddress;
}
@Override
public int hashCode() {
int hash = 3;
hash = 37 * hash + Objects.hashCode(this.remoteAddress);
return hash;
}
}
但为什么我可以从'TableView'中删除数据?我最近通过调用'table.getItems()。remove(row.getItem())'从tableview(包含Person类对象)中删除数据,即使我没有重写equals和hashCode方法。 – UnKnown 2016-11-04 16:00:20
@未知我真的不知道这与这个问题有什么关系。可能您需要发布自己的问题,为您的代码提供适当的上下文。 – 2016-11-04 16:06:52
我在这里发布了新的问题。 http://stackoverflow.com/questions/40427758/how-tableview-and-listviews-remove-works – UnKnown 2016-11-04 16:42:21