1 initialization optional-parameters optional-arguments kotlin
很抱歉问了一个非常新手的 Kotlin 问题,但我正在努力理解一些与构造函数和初始化相关的事情。
我有这个类和构造函数:
class TestCaseBuilder constructor(
caseTag: String = "Case",
applType: Buy.ApplFor = Buy.ApplFor.PROOFFINANCE,
komnr: String = "5035") {
var caseTag: String = caseTag
var applType: Buy.ApplFor = applType
var komnr: String = komnr
Run Code Online (Sandbox Code Playgroud)
我在这里尝试做的是在构造函数中添加三个可选参数,并使用它们的默认值。我在类主体中声明它们的原因是因为我需要从主类访问它们。
现在,这段代码可以工作了。我运行时没有错误。但 IntelliJ 对变量给出了以下注释(例如:caseTag):
Property is explicitly assigned to parameter caseTag, can be declared
directly in constructor.
Run Code Online (Sandbox Code Playgroud)
我在搜索时发现的是使用 init {} 的示例,但我得到的结果包括初始化变量两次,一次在构造函数中,然后在 init {} 中。我想说这显然是不正确的?
在构造函数中拥有(或拥有)可选参数,然后从中创建类变量,还有什么更好的呢?
您可以直接在主构造函数中声明属性。这意味着您可以在类主体中删除显式声明:
class TestCaseBuilder constructor(
var caseTag: String = "Case",
var applType: Buy.ApplFor = Buy.ApplFor.PROOFFINANCE,
var komnr: String = "5035")
Run Code Online (Sandbox Code Playgroud)
constructor 如果您的主构造函数没有任何注释或可见性修饰符(默认为) ,您也可以删除关键字public。
| 归档时间: |
|
| 查看次数: |
3230 次 |
| 最近记录: |