如何指定要在Kotlin中返回的正确类型?

时间:2018-07-30 06:18:23

标签: kotlin

我有一个返回特定类型列表的方法

String sDate1 = Thu Jun 26 13:45:32 IST 2018;
String sDate2 = Thu Jul 16 03:25:37 IST 2018;

Date date1 = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy").parse(sDate1);
Date date2 = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy").parse(sDate2)
long dateDiff2 = date2.getTime() - date1.getTime();

所使用的库只是 fun update( financialMethods: List<FinancialMethods> ): CompletableFuture<List<ApvFinancialMethods>> { return post<List<ApvFinancialMethods>>( "/apv-financial-methods", financialMethods, List::class.java ) } 的包装。

restTemplate

但是我的 protected <T> CompletableFuture<T> post(String path, Object obj, Class<T> clazz, Object... uriVariables) { return post(path, obj, clazz, new RequestParams(), uriVariables); } protected <T> CompletableFuture<T> post(String path, Object obj, Class<T> clazz, RequestParams requestParams, Object... uriVariables) { String paramString = getParamString(requestParams, true, true); T t = cubsWsRestTemplate.exchange(path + paramString, HttpMethod.POST, new HttpEntity<>(obj, headers), clazz, uriVariables).getBody(); return CompletableFuture.completedFuture(t); } 有问题。我收到的错误是List::class.java。如果我将所有列表都更改为Type inference failed. Expected type mismatch,则可以使用,但是我得到的类型显然不是我想要的类型。如何更改List<*>以使我的方法有效?

1 个答案:

答案 0 :(得分:0)

您可以尝试从post<List<ApvFinancialMethods>>中删除通用类型。我发现intellij转换器错误地将它们添加到了许多可以由编译器推断类型的地方。在这种情况下,这应该是多余的,而且显然kotlin的List与Java代码不匹配。