Si un KCallable
est créé en utilisant Any()::toString
, alors quand il est référencé plus tard, vous n'avez pas besoin de passer cette instance Any
(lorsque vous utilisez call
).Kotlin vérifier si la fonction nécessite le paramètre d'instance
Bien que si elle est créée en utilisant Any::toString
(pas une instance de Any
), il est nécessaire de passer une instance Any
. Donc, ma question est comment puis-je facilement savoir si j'ai besoin de passer ce paramètre d'instance et ce paramètre est-il obligatoire?
J'ai trouvé une façon de le faire:
callable.parameters[0].kind == KParameter.Kind.INSTANCE
mais il est pas tout à fait agréable et je me demande s'il y a un moyen plus facile ou recommandé de résoudre ce problème. Merci!
Donc, quand 'instanceParameter' renvoie null cela signifie que je n'ai pas besoin de passer le propriétaire appelable, non? – Mibac
Presque. Il y a aussi des fonctions d'extension: 'fun Any.foo() = 1': il aura' instanceParameter == null', donc vous voudrez probablement aussi vérifier 'extensionReceiverParameter'. – hotkey