用kotlin作为URL的变量

时间:2017-12-29 14:23:30

标签: variables kotlin var

我试图通过变量来填写网址,但是当我将其传递给我想要连接的网址时,它会给我一个错误

    override fun onCreate
var mparam = intent.getStringExtra("param")


 interface ApiActaPartido {
             @GET("My_url"+$mparam)
             fun getActaPartido(): Call<ActaPartidoList>

        }
  

错误:(84,77)期望元素错误:(84,14)注释参数必须是编译时常量

请帮助。

2 个答案:

答案 0 :(得分:2)

  

注释参数必须是编译时常量

这告诉您编译器需要在编译时知道您在注释中使用的值。由于您动态获取该变量的值(var mparam = intent.getStringExtra("param")),因此无法将该值编译为它为您构建的字节码。

您必须找到一种方法来使@GET使用的值成为编译时常量,或者使用其他方法来执行它要提供的任何功能。

答案 1 :(得分:1)

您只能将常量传递给注释参数。如果ConfigAmaters.DATA_ACTA不是常量,那么你不能在里面使用它作为注释参数。

如果实际上val DATA_ACTA: String位于object内,那么您可以通过添加const使其成为常量:

object ConfigAmaters {
    const val DATA_ACTA: String = "..."
}

在这种情况下,编译器不应该再抱怨了。