【发布时间】:2019-09-11 00:41:27
【问题描述】:
我有两个返回对象的 api:
public class Enemy{
private String name;
private int id;
private EnemyCharacteristics enemyCharacteristics;
+getter 和 setter
public class EnemyCharacteristics {
private ArrayList<Abilities> abilities;
private ArrayList<Stats> stats;
+getter 和 setter
我有改造界面:
public interface ApiService{
@GET("enemy")
Observable<EnemyResult> getEnemyResult(@Query("limit") int limit, @Query("offset") int offset);
@GET("enemy/{name}")
Observable<EnemyCharacteristics> getEnemyCharacteristics(@Path("name") String name);
我发送请求 getEnemyResult(),它返回:
public class EnemyResult{
private ArrayList<Enemy> results;
public ArrayList<Enemy> getResults() {
return results;
}
public void setResults(ArrayList<Enemy> results) {
this.results = results;
}
}
接下来,我需要为每个 Enemy 请求发送 getEnemyCharacteristics() 并使用结果调用 Enemy.setEnemyCharacteristics()。
我应该如何将这两个请求与 RXJava2 结合起来,以将 EnemyCharacteristics 作为 Enemy 的一部分返回 Enemy 对象?
【问题讨论】:
-
因为 getEnemyCharacteristics 返回多个 EnemyCharacteristics (
Observable<EnemyCharacteristics>),应该使用哪一个来调用Enemy.setEnemyCharacteristics()?只是第一个? -
第二个 api 请求有参数 - Enemy.name。 Api 只为这个名称的 Enemy 返回一个 EnemyCharacteristics:apiService.getEnemyCharacteristics(name);
标签: java android retrofit rx-java rx-java2