Ich lerne Kotlin, aktuell mit Fedora 25 OpenJDK 8 und Kotlin 1.1.Kotlin Reflection Operator get Implementierung
kopierte ich das Beispiel von der Kotlin Website: https://kotlinlang.org/docs/reference/delegated-properties.html und den get-Operator geändert.
Beim Lesen der Reflection-Dokumentation erwartet der Getter die Objektinstanz und keinen anderen Parameter, aber ich habe nur den folgenden Fehler erhalten. (Fehler ist abkürzen, weil es zu groß ist, ist es in Rekursion ist.)
.
.
.
at info.malk.Example.getP(Delegation.kt)
at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at kotlin.reflect.jvm.internal.FunctionCaller$Method.callMethod(FunctionCaller.kt:98)
at kotlin.reflect.jvm.internal.FunctionCaller$InstanceMethod.call(FunctionCaller.kt:115)
at kotlin.reflect.jvm.internal.KCallableImpl.call(KCallableImpl.kt:107)
at info.malk.Delegate.getValue(Delegation.kt:32)
at info.malk.Example.getP(Delegation.kt)
.
.
.
Caused by: java.lang.reflect.InvocationTargetException
... 1024 more
Caused by: java.lang.StackOverflowError
... 1024 more
Process finished with exit code 1
Hilfe.
Sie rekursiv die Getter für 'P' aufrufen. Was willst du erreichen? – nhaarman
Ich vermute, das war der Fall, ich möchte Hilfe, um den Getter durch Reflexion/Delegation zu implementieren. – Malkaviano