'Using Kotlin reflection how to determine which constructor parameters were given as `val`?
Simple case A (no problem here)
class A(val title: String)
For instance a, we will get the parameters list from a.javaClass.kotlin.primaryConstructor!!.valueParameters.
Simple case B (no problem here)
class B(titleRaw: String) { // no val
val titleFinal = titleRaw.uppercase() // the property has different name
}
We can determine that the titleRaw parameter does not create a property because there is no titleRaw property on the object. We will use valueParameters and memberProperties to detect that.
Difficult case:
class C(title: String) { // no val
val title = title.uppercase() // property with the same name
}
How to detect that the title property does not return the value of the title parameter?
A little background
Having an instance of a class, I want to know what constructor argument values it was instantiated with. If that's not possible (the primary constructor takes arguments that aren't properties), I'd like to throw an exception.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
