如果使用Any()::toString
創建了KCallable
,那麼當它稍後被引用時,您不需要傳遞該實例(使用call
時)。Kotlin檢查功能是否需要實例參數
雖然如果它是使用Any::toString
(不是Any
的實例)創建的,但它需要傳遞一個Any
實例。
所以我的問題是如何輕鬆地找出我是否需要傳遞該實例參數,並且此參數是必需的?
我發現了一個辦法做到這一點:
callable.parameters[0].kind == KParameter.Kind.INSTANCE
,但它是不是很漂亮,我不知道是否有解決這個更簡單的或推薦的方式。謝謝!
所以當'instanceParameter'返回null時,這意味着我不需要傳遞可調用的所有者,對吧? – Mibac
差不多。還有擴展函數:'fun Any.foo()= 1':它將有'instanceParameter == null',所以你可能也想檢查'extensionReceiverParameter'。 – hotkey