我目前正在学习Java(适用于Android)的反应式编程。
我使用Livedata监听字段中的更改。
但是我有一个问题。每当模型类中的字段更新时,是否可以触发监听器?
即,
好的。让我详细解释
场景 想象一些模型类
class Student
{
String name ;
int age;
int rollno;
Sports sports ;
}
class Sports
{
String sportName;
int score;
}
现在这是我的需要。
当我更新Student类的object中的字段时,然后是一个侦听器 必须触发返回学生的更新对象 课
例如
如果我将名称更新为stdobj.name = "Lords"
,则必须触发一个侦听器,该侦听器将返回更新后的对象,像这样
....
public void onUpdated (Student student)
{
...
}
如果我将age字段更改为stdobj.age = 25
,则必须触发一个侦听器,该侦听器将返回更新的对象
注意
当运动对象也更新时,还必须触发侦听器
stdobj.sports = new Sports (....)
。
我以前的作品
我使用了Observable interface and BaseObservable
。
但是我需要为每个添加
notifypropertychaged(<field_name>)
每个变量。
如果模型类具有100个变量,该怎么办。加100 notifypropertychaged(<field_name>)
是一件很痛苦的事情。
MutableLiveData
也发生了同样的事情。我不得不将所有字段都转换为livedata对象,还需要为这些livedata对象创建一个单独的观察器
因此,上述解决方案对我而言并不完美。我需要一些东西 一次执行即可自动观察所有字段。
类似以下内容:
class Student extends FieldsObserver<Student>
{
...
...
@Override
public void onFieldChanged (Student student)
{
...
...
}
或这样
FieldChangedObserver observer = ...;
observer.observe(stdobj, new OnFieldChangedListener()
{
public void onFieldChanged (Student student)
{
....
}
});
这是我的需要。请告诉解决方法