- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含 14 个字段的表单,这些字段需要在启用提交按钮之前有效。
我在每个字段上都有一个可观察对象,我正在使用 combineLatest() 来确保它们同时有效。
我已经用较少数量的参数尝试过它,并且效果很好(当我使用 Func3、Func4 等时)。
combineLatest() 的问题在于,当您组合 9 个以上的可观察对象时,您必须使用 FuncN 作为组合可观察对象。这是一个代码示例:
List <Observable<Boolean>> fieldObservables = new ArrayList<Observable<Boolean>>();
fieldObservables.add(field1Observable);
fieldObservables.add(field2Observable);
fieldObservables.add(field3Observable);
fieldObservables.add(field4Observable);
fieldObservables.add(field5Observable);
fieldObservables.add(field6Observable);
fieldObservables.add(field7Observable);
fieldObservables.add(field8Observable);
fieldObservables.add(field9Observable);
fieldObservables.add(field10Observable);
fieldObservables.add(field11Observable);
fieldObservables.add(field12Observable);
fieldObservables.add(field13Observable);
fieldObservables.add(field14Observable);
Subscription formReadySubscription = Observable
.combineLatest(fieldObservables,
new FuncN<Boolean>() {
@Override
public Boolean call(Boolean... readyArgs) {
for (Boolean ready : readyArgs) {
if (!ready) {
return false;
}
}
return true;
}
})
.subscribe(new Observer<Boolean>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(Boolean formValid) {
// TODO: enable submit button
}
});
上面的代码在 FuncN 上给出了两个错误:
"Anonymous is not abstract and does not override abstract method call(Object...) in FuncN"
和
"Method does not override or implement a method from a supertype"
因为它的 call() 方法。
看来 FuncN<Boolean>
的 call() 方法需要一个对象列表而不是 bool 值。 (我想知道这是否是一个错误。我很怀疑,因为 Func2 (作为示例)被定义为 Func2<Boolean, Boolean, Boolean>
,其中两个 bool 值是参数,其中一个 bool 值是调用的预期返回值( ) 方法。保持这种模式,你会期望 FuncN 的声明是 FuncN<Boolean,Boolean>
。)
有没有人成功地让 FuncN 工作,如果有,你是怎么做到的?谢谢!
最佳答案
改变
公共(public) bool 调用( bool ... readyArgs){
到
public Boolean call(Object... readyArgs) {
然后在方法中将参数转换为 bool 值
关于android - RxAndroid FuncN 编译/lint 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33621188/
我有一个包含 14 个字段的表单,这些字段需要在启用提交按钮之前有效。 我在每个字段上都有一个可观察对象,我正在使用 combineLatest() 来确保它们同时有效。 我已经用较少数量的参数尝试过
我是一名优秀的程序员,十分优秀!