Any()::toString
을 사용하여 KCallable
을 만든 경우 나중에 참조 할 때 인스턴스 (call
을 사용하는 경우)를 전달할 필요가 없습니다.Kotlin 함수에 인스턴스 매개 변수가 필요한지 확인합니다.
Any::toString
(Any
이 아닌 인스턴스)을 사용하여 생성 된 경우 Any
인스턴스를 전달해야합니다.
내 질문에 내가 인스턴스 매개 변수를 전달해야하는지 여부와이 매개 변수가 필수 항목인지 여부를 쉽게 알 수있는 방법은 무엇입니까?
내가 할 수있는 방법을 발견 :callable.parameters[0].kind == KParameter.Kind.INSTANCE
을하지만, 꽤 좋은하지 내가이 문제를 해결하는 쉬운 또는 권장되는 방법이 있는지 궁금합니다. 감사!
그러므로 당신은 단지 그것으로 반환 된 값을 비교해야하는 호출 참조가 결합되지 않은 경우
, 그것은 특별한 값
CallableReference.NO_RECEIVER
를 반환합니다 다음boundReceiver
속성을 사용하여 그래서'instanceParameter'가 null을 반환하면 호출 가능한 소유자를 전달할 필요가 없다는 것을 의미합니다, 그렇습니까? – Mibac거의. 'fun Any.foo() = 1' :'instanceParameter == null'을 가질 것이므로'extensionReceiverParameter'도 확인하고 싶을 것입니다. – hotkey