gpt4 book ai didi

java - 使用 Observables RxJava 进行文件验证

转载 作者:行者123 更新时间:2023-12-01 09:56:56 24 4
gpt4 key购买 nike

我正在尝试使用 Rxjava 解决经典文件验证过程。我有一个 CSV 文件,其中包含普通 header 和另一个 header 列表,我需要验证它们是否属于所选数据类型或者值是否为空。

我已经使用普通的java实现了这个,但我想让我的验证代码更具 react 性。这就是我到目前为止所取得的成就。

String filePath = "/home/user/Documents/test.csv";
Path path = Paths.get(filePath);
Map<String,String> headerMap = new HashMap<>();
headerMap.put("feild11","String");
headerMap.put("feild10","String");
headerMap.put("feild9","Date");
headerMap.put("feild8","NOT-NULL");

// An map observalble which defines my valdiation rules
Observable<Map<String,String>> fieldsToValidae = Observable.just(headerMap);

Observable<String> fileObservalbe = RxFileReader.from(path);
// An observalbe which gives a list of headers
Observable<String> headers = fileObservalbe.first();

// An observalbe which gives me list of feild values
Observable<String> feildValues = fileObservalbe.skip(1);

这里我有 3 个可观察量要组合并在验证失败的第一个实例(行)中进行验证。

这是我想要使用的示例数据:

标题:

FirstName|LastName|Gender|DOB|feild1|feild2|feild3|feild4|feild5|feild6|feild7|feild8|feild9|feild10|feild11

值(value)观:

Prakash|joshi|M|11/25/2015|a fdf f|adf |saf |asf|dfadf |sadf | |asdf |asdfsdf|asdf|dfsfcded Prakash|joshi|M|10/25/2015|a fdf f|adf |saf |asf|dfadf |sadf | |asdf |asdfsdf|asdf|dfsfcded Prakash|joshi|M|10/25/2015|a fdf f|adf |saf |asf|dfadf |sadf | |asdf |asdfsdf|asdf|dfsfcded

我现在几乎陷入困境,有人可以帮助我或为我指出正确的方向吗?

最佳答案

使用combineLatest运算符,传递内部 header 和字段(据我所知,您将发出一个 header 和许多字段),并在函数中传递数据验证逻辑

Observable<Result> validationResultObservable = Observable.combineLatest(headers, feildValues, new Func2<String, String, Result>() {
@Override
public Result call(String header, String field) {
// header always same
// field always new
// validate, create same kind of Result object or just a boolean
Log.i("TEST_IT", "validationResultObservable emitted: " + header + " - " + field);
return new Result(header, field);
}
});

关于java - 使用 Observables RxJava 进行文件验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37141521/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com