I am trying to write extension function in kotlin. I came almost to the end but one simple thing stopped me. Code goes like this:
fun Bundle.applyWithUserParameters(vararg functionList: () -> Unit = null): Bundle = Bundle().apply {
for (method in functionList)
method()
FirebaseAnalyticsHelper.clientRepository.getClientData()?.clientID?.let {
putInt(
FirebaseAnalyticsHelper.KEY_USER_ID, it
)
}
}
null is underlined and it says: "Null can not be a value of a non-null type Array<out () -> Unit>"
Is there any way to fix this or I am unable to use vararg at all in this case? Thanks
You seem to be trying to set the default value of the varargs parameter to null. This is not needed. Varargs can take 0 parameters, even without a default value.
fun Bundle.applyWithUserParameters(vararg functionList: () -> Unit): Bundle =
Bundle().apply {
for (method in functionList)
method()
FirebaseAnalyticsHelper.clientRepository.getClientData()?.clientID?.let {
putInt(
FirebaseAnalyticsHelper.KEY_USER_ID, it
)
}
}
This works:
someBundle.applyWithUserParameters()