首页 > 解决方案 > 如何计算在 Kotlin 中创建的对象的数量?

问题描述

在下面的代码片段中,我创建了 4 个 CompanionClass 实例,并想知道我创建了多少个实例,所以尝试了很多方法但没有奏效。在这里,我使用伴随对象类来跟踪对象,但我知道它与对象没有联系,因为 keepTrackOfObjects() 是静态的。谁能帮我解决这个问题,好吗?

class CompanionClass
{
     
    companion object{
        var numberOfObjects = 0 
        fun keepTrackOfObjects() = println("number of created objects currently is: +
             ${++numberOfObjects}")
    }
}

fun main()
{
 
    val obj1 = CompanionClass()
    CompanionClass.keepTrackOfObjects()
    val obj2 = CompanionClass()`enter code here`
    val obj3 = CompanionClass()
    val obj4 = CompanionClass()
    CompanionClass.keepTrackOfObjects()
}

// output is
// 1
// 2

标签: kotlin

解决方案


您可以使用该init块来计算您创建的元素:

class CompanionClass {
     
    companion object {
        var counter: Int = 0
        
        fun counter(): Int {
            return counter
        }
    }

    init {
        counter++
    }
}

您可以在这个kotlin playground中测试行为。


推荐阅读