加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala注释参数需要是常量,但最终的val不能成功

发布时间:2020-12-16 09:58:59 所属栏目:安全 来源:网络整理
导读:在这个片段中, @SwaggerDefinition(...authorizationUrl = SecurityConstants.authorizationUrl) 鉴于此 final object SecurityConstants { final val authorizationUrl: String =..} (两个决赛中只有一个应该没问题,但仍然) 我期待/希望这可以用2.12.3进行
在这个片段中,

@SwaggerDefinition(...authorizationUrl = 
SecurityConstants.authorizationUrl)

鉴于此

final object SecurityConstants {
  final val authorizationUrl: String =..
}

(两个决赛中只有一个应该没问题,但仍然)
我期待/希望这可以用2.12.3进行编译但是它给出了
“注释参数需要是常量;找到:SecurityConstants.authorizationUrl
[error] authorizationUrl = SecurityConstants.authorizationUrl,“

在注释中调用Java静态方法System.getenv(“a”)也会带来相同的错误,即

@SwaggerDefinition(...authorizationUrl = System.getenv("a"))

请帮忙,
Nicu M

解决方法

final val引用可以在两个条件下用作Java注释参数:

>分配给最终val的值必须是文字.
>您不能明确指定最终val的类型.

所以,这将工作:

final val authorizationUrl = "http://something.com"

但这些不起作用:

final val authorizationUrl = "http://something.com".trim
final val authorizationUrl: String = "http://something.com"

条件没有. 2可能看起来特别奇怪但是编译器需要在内部保留最终val所持有的信息,而不仅仅是String,而是一些特定的文字字符串值.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读