Retrofit2+Rxjava2 异常解决 Parameter type must not include a type variable or wildcard

今天在使用Retrofit2+Rxjava2框架 上传jsonArray数据

上传以下数据放入服务器在这里插入图片描述
添加接口

  //批量增加人脸
    @Headers("Content-Type: application/json")//需要添加头
    @POST("face/saveBatchFaceInfo")
    fun saveBatchFaceInfo(@Body faceInfoList:List<FaceInfoEntity>): Observable<ResultEntity>

当前写法是

var faceInfo =List<FaceInfoEntity>
   RetrofitHelper.getApi().saveBatchFaceInfo(faceInfo)
            .map {
                return@map it
            }
            .compose(RxUtils.rxSchedulerHelper())
            .subscribe({
            }, {
                mView.showError("${it.message}")
            })

结果显而易见 报错了

Parameter type must not include a type variable or wildcard: java.util.List<实体类> (parameter #1)
    for method Api.saveBatchFaceInfo
  

这个是是由于实体在Kotlin下不能被确认 需要再加下转换 就可以了
解决办法
入参加下转换就可以了

  RetrofitHelper.getApi().saveBatchFaceInfo(getFace(faceInfo))
private fun <T> getFace(list: List<T>): List<FaceInfoEntity> {
        val faces = LinkedList<FaceInfoEntity>()

        list as List<FaceInfoEntity>
        list.forEach {
            val face = FaceInfoEntity()
            
     		//添加具体属性
     		
            faces.add(face)
        }
        return faces
    }

这样就可以直接用了

时隔几天 突然发现一个很简便的的方法
直接添加注解 就可以了@JvmSuppressWildcards

//批量增加人脸
    @Headers("Content-Type: application/json")//需要添加头
    @POST("face/saveBatchFaceInfo")
    fun saveBatchFaceInfo(@Body faceInfoList:@JvmSuppressWildcards List<FaceInfoEntity>): Observable<ResultEntity>`
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值