Как насчет упаковки animalId
и weight
внутри другого типа: например, AnimalProperty
class AnimalProperty<T> {
String propertyName;
T property;
AnimalProperty(String name, T property) {
this.propertyName = name;
this.property = property;
}
}
, чтобы ваш код выглядел следующим образом:
public class AnimalWeightObservable extends Observable {
public AnimalProperty animalId;
public AnimalProperty weigh;
//...
//...
public AnimalWeightObservable setWeigh(AnimalProperty weigh) {
this.weigh = weigh;
this.setChanged();
this.notifyObservers(weigh);
return this;
}
}
, затем вObserver
метод update(...)
переключает propertyName
, чтобы узнать, какое свойство обновлено