在改造中使用varargs和回调

时间:2014-06-05 11:33:32

标签: android retrofit

我想知道我怎么可能解决这个问题。我想为loadid使用vararg,我想添加一个回调。如你所知,varargs应该是列表中的最后一个回调。

请参阅以下代码:

void getEvents(@Path("id") long id, @Query("number") int number, @Query("age") int age, BaseCallback<List<Event>> cb, @Query("loadId") long... loadId);

1 个答案:

答案 0 :(得分:3)

你不能在这个版本中。在版本2中,同步/异步行为不会绑定到方法中定义的参数,而是绑定返回类型。

现在,使用数组或List代替(varargs只是构建数组的一种奇特方式)

void getEvents(
    @Path("id") long id,
    @Query("number") int number,
    @Query("age") int age,
    @Query("loadId") List<Long> loadId,
    BaseCallback<List<Event>> cb);

void getEvents(
    @Path("id") long id,
    @Query("number") int number,
    @Query("age") int age,
    @Query("loadId") long[] loadId,
    BaseCallback<List<Event>> cb);