- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如下图,我正在学习如何使用rxjava。我想知道如何使用映射运算符来显示每个列表中有多少个 Person 对象。问题是,当我运行来自可观察对象的 onNext 代码时,永远不会调用。
注意:下面发布的 person 类包含可选属性。
请让我如何使用 map 运算符显示每个列表中有多少个 Person 对象。
提前致谢
代码:
public class Main {
public static void main(String[] args) {
Observable<List<Person>> observables = Observable.create(e-> {
for(List<Person> p : Main.getPersons()) {
e.onNext(p);
}
e.onComplete();
});
observables
.map(p->p.size())
.observeOn(Schedulers.io())
.subscribe(new Observer() {
@Override
public void onComplete() {
// TODO Auto-generated method stub
System.out.println("onCompleted");
}
@Override
public void onError(Throwable arg0) {
// TODO Auto-generated method stub
}
@Override
public void onNext(Object arg0) {
// TODO Auto-generated method stub
System.out.println("onNextFromObserver: " + arg0);
}
@Override
public void onSubscribe(Disposable arg0) {
// TODO Auto-generated method stub
}
});
}
private static <T> Observable<T> toObservable(T s) {
return Observable.just(s);
}
private static List<List<Person>> getPersons() {
return Arrays.asList(
Arrays.asList(new Person("Sanna1", 59, "EGY"), new Person(null, 59, "EGY"), new Person("Sanna3", 59, null)),
Arrays.asList(new Person("Mohamed1", 59, "EGY"), new Person(null, 59, "EGY")),
Arrays.asList(new Person("Ahmed1", 44, "QTR"), new Person("Ahmed2", 44, "QTR"), new Person(null, null, "QTR")),
Arrays.asList(new Person("Fatma", 29, "KSA")),
Arrays.asList(new Person("Lobna", 24, "EGY")));
}
}
人
public class Person {
private String name = null;
private String address = null;
private int age;
private Optional<String> optName= null;
private Optional<Integer> optAge= null;
private Optional<String> optAddress = null;
public Person(String name, Integer age, String address) {
this.optName = Optional.ofNullable(name);
this.optAge = Optional.ofNullable(age);
this.optAddress = Optional.ofNullable(address);
}
public Optional<String> getName() {
return optName;
}
public void setName(String name) {
this.optName = Optional.ofNullable(name);
}
public Optional<String> getAddress() {
return this.optAddress;
}
public void setAddress(String address) {
this.optAddress = Optional.ofNullable(address);
}
public Optional<Integer> getAge() {
return this.optAge;
}
public void setAge(int age) {
this.optAge = Optional.ofNullable(age);
}
}
最佳答案
onNext
未执行的原因与 Schedulers.io()
使用守护线程有关。这意味着如果没有其他线程处于 Activity 状态,它们不会保持 JVM 运行。
简单地说,因为您的 main
函数结束了,唯一运行的代码是 IO 调度程序,它将在将来调用 onNext
。由于没有非守护线程处于 Activity 状态,因此 JVM 会在实际发生之前退出。使用 blockingSubscribe
阻塞主线程,直到 observable 完成,您将看到您期望的输出。
关于java - 为什么onNext没有效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53124629/
我正在使用 Gunicorn 为 Django 应用程序提供服务,它工作正常,直到我将其超时时间从 30 秒更改为 900000 秒,我不得不这样做,因为我有一个用例需要上传和处理一个巨大的文件(过程
我有一个带有非常基本的管道的Jenkinsfile,它可以旋转docker容器: pipeline { agent { dockerfile { args '-u root' } } stag
在学习 MEAN 堆栈的过程中,我遇到了一个问题。每当我尝试使用 Passport 验证方法时,它都不会返回任何响应。我总是收到“localhost没有发送任何数据。ERR_EMPTY_RESPONS
在当今的大多数企业堆栈中,数据库是我们存储所有秘密的地方。它是安全屋,是待命室,也是用于存储可能非常私密或极具价值的物品的集散地。对于依赖它的数据库管理员、程序员和DevOps团队来说,保护它免受所
是否可以创建像图片上那样的边框?只需使用 css 边框属性。最终结果将是没 Angular 盒子。我不想添加额外的 html 元素。我只想为每个 li 元素添加 css 边框信息。 假设这是一个 ul
我是一名优秀的程序员,十分优秀!