В настоящее время я работаю с PropertyChangeListeners, и я хочу знать, было бы целесообразно, если бы объект был добавлен (или удален, если на то пошло), чтобы проиндексировать свойство таких как ArrayList.Добавление элемента к индексированному свойству - PropertyChangeSupport
public class SimpleBean implements Serializable
{
private ArrayList<Matrix> mats;
private PropertyChangeSupport pcs = new PropertyChangeSupport(this);
public SimpleBean()
{...}
public void addMat(Matrix m)
{
pcs.firePropertyChange("mats", null, m); // I'm having trouble with the parameters
mats.add(m);
}
}
Я читал учебники PropertyChangeListener, и казалось, что было бы целесообразно, чтобы огонь изменения свойства, когда значение связанного имущества изменилось. Ну, я не был уверен, что это означает, что я должен уволить изменение свойства всякий раз, когда свойство было изменено на , любое значение означает или только тогда, когда свойство (или элемент этого свойства) было строго установлено/переназначено на другое значение ,
В моей программе было бы очень удобно, если бы несколько классов могли меняться каждый раз, когда элемент был удален или добавлен в маты ArrayList, и я подумал, что PropertyChangeListener может мне помочь в этом отношении.
Пожалуйста, дайте мне знать, если этот метод не рекомендуется, и если есть другой способ, который другие классы могут прослушивать и отвечать на удаление/дополнение к индексированным свойствам.
Рассматривая контракт, вы должны отправить «маты» перед модификацией и «маты» после модификации. Я сомневаюсь, что это то, что вы хотите. Возможно, вы захотите использовать 'fireIndexedPropertyChange'. – KDM
Хорошо, но если я попробую fireIndexedPropertyChange, будет ли 'pcs.fireIndexedPropertyChange (« mat », mats.size(), null, m)' подходящей заменой? Поскольку все, что я узнал об изменении связанных свойств, связано с назначением свойства чему-то другому, а не добавлению/удалению из него, у меня есть проблема с параметризацией этого метода. @KDM – novice