运维开发网

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

运维开发网 https://www.qedev.com 2020-07-05 18:06 出处:网络 作者:运维开发网整理
在这个片段中, @SwaggerDefinition(...authorizationUrl = SecurityConstants.authorizationUrl) 鉴于此 final object SecurityConstants { final val authorizationUrl: String =.. } (两个决赛中只有一个应该没问题,但仍然) 我期待/希望这可以用2.1
在这个片段中,

@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,而是一些特定的文字字符串值.

0

精彩评论

暂无评论...
验证码 换一张
取 消