用kotlin作为URL的变量

问题描述 投票:1回答:2

我正在尝试通过变量完成一个URL但是当我传递它并将其添加到我想要连接的URL时,它会给我一个错误

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


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

        }

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

请帮忙。

variables kotlin var
2个回答
2
投票

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

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

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


1
投票

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

如果它实际上是val DATA_ACTA: String里面的object那么你可以通过添加const使它成为常数:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.