kotlin 注解参数必须是编译时常量

r1zhe5dt  于 2023-11-21  发布在  Kotlin
关注(0)|答案(1)|浏览(179)

我想做的是

@FormUrlEncoded
@POST("retrofit/POST/signup.php")
abstract fun signUp(
    @Field(Constant().KEY_NAME) name: String?,
    @Field(Constant().KEY_CELL) cell: String?,
    @Field(Constant().KEY_PASSWORD) password: String?,
): Call<Contacts?>?

字符串
我在Constant().KEY_NAMEConstant().KEY_CELLConstant().KEY_PASSWORD上遇到错误
错误:注解参数必须是编译时常量
常量类。

class Constant {
  val BASE_URL = "http://istiak.ga/app/"

  val KEY_NAME = "name"
  val KEY_PASSWORD = "password"
  val KEY_CELL = "cell"
}


的数据

fkaflof6

fkaflof61#

您需要做的是将Constants类转换为object,如下所示

object Constants {
 const val BASE_URL = "http://istiak.ga/app/"

 const val KEY_NAME = "name"
 const val KEY_PASSWORD = "password"
 const val KEY_CELL = "cell"
}

字符串
然后,您可以直接引用每个值,而不是为您需要的每个变量创建Constants类的示例,如下所示

@FormUrlEncoded
@POST("retrofit/POST/signup.php")
abstract fun signUp(
    @Field(Constant.KEY_NAME) name: String?,
    @Field(Constant.KEY_CELL) cell: String?,
    @Field(Constant.KEY_PASSWORD) password: String?,
): Call<Contacts?>?

相关问题