不可变构造函数注入 Kotlin 类的正确方法
Posted
技术标签:
【中文标题】不可变构造函数注入 Kotlin 类的正确方法【英文标题】:Correct approach for immutable constructor injected Kotlin class 【发布时间】:2016-01-24 08:31:09 【问题描述】:用 Spring + Kotlin 声明不可变构造函数注入类的正确方法是什么?目前我有:
@RestController
public class AuthorizationController
@Inject
lateinit var facebookAuth: FacebookAuthorizationService //Mutable?
@RequestMapping("/authorization")
public fun authorization(@RequestParam(value = "network-type", defaultValue = "Facebook") name: String,
@RequestParam(value = "oauth-token") oauthToken: String,
@RequestParam(value = "oauth-token-secret",
required = false) oauthTokenSecret: String?): Authorization
//TODO: Handle other network types
return facebookAuth.authorization(oauthToken)
我希望 facebookAuth 属性是不可变的。
【问题讨论】:
【参考方案1】:这里对Kotlin的经验不多,但我觉得一定要用
public class AuthorizationController @Inject constructor(private val facebookAuth: FacebookAuthorizationService)
...
【讨论】:
以上是关于不可变构造函数注入 Kotlin 类的正确方法的主要内容,如果未能解决你的问题,请参考以下文章
Kotlin类的初始化 ② ( 主构造函数 | 主构造函数定义临时变量 | 主构造函数中定义成员属性 | 次构造函数 | 构造函数默认参数 )