【问题标题】:Variable with kotlin for URL带有 kotlin 的 URL 变量
【发布时间】:2018-06-09 23:30:27
【问题描述】:

我试图通过变量来完成一个 URL,但是当我传递它并将它添加到我想要连接的 url 时,它给了我一个错误

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


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

        }

Error:(84, 77) Expecting an element Error:(84, 14) 注解参数必须是编译时常量

请帮忙。

【问题讨论】:

    标签: variables kotlin var


    【解决方案1】:

    您只能将常量传递给注释参数。如果ConfigAmaters.DATA_ACTA 不是常量,则不能在内部将其用作注释参数。

    如果它实际上是一个 val DATA_ACTA: Stringobject 内,那么您可以通过添加 const 使其成为常量:

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

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

    【讨论】:

    • 是的,有了这个我可以在 const val COD_INFO: String = "hello" 但不是变量 mparam 中插入一个字符串
    【解决方案2】:

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

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

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

    【讨论】:

    • Java 也有同样的要求。
    猜你喜欢
    • 2018-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-18
    • 2018-07-01
    • 1970-01-01
    • 2013-02-03
    • 1970-01-01
    相关资源
    最近更新 更多