gpt4 book ai didi

kotlin - Kotlin和构造函数,初始化

转载 作者:行者123 更新时间:2023-12-02 13:08:37 32 4
gpt4 key购买 nike

很抱歉问到一个非常新手的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

我在这里尝试做的是在构造函数中使用默认值来提供三个可选参数。之所以在类主体中声明它们是因为我需要从主类访问它们。

现在,此代码有效。运行时没有错误。但是IntelliJ对变量(例如:caseTag)给出了以下注释:
Property is explicitly assigned to parameter caseTag, can be declared
directly in constructor.

我在搜索时发现的是使用init {}的示例,但是得到的结果包括两次初始化变量,一次在构造函数中,然后在init {}中。我会说哪个显然不正确?

在构造函数中拥有(或拥有)可选参数,然后从中创建类变量,有什么更好的选择?

最佳答案

您可以直接在主构造函数中声明属性。这意味着您可以在类主体中删除显式声明:

class TestCaseBuilder constructor(
var caseTag: String = "Case",
var applType: Buy.ApplFor = Buy.ApplFor.PROOFFINANCE,
var komnr: String = "5035")

如果您的主构造函数没有任何注释或可见性修饰符(默认为 constructor),则也可以删除 public关键字。

关于kotlin - Kotlin和构造函数,初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56238336/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com