W Javie możemy rozwiązać klasę zmiennej przez getClass()
, taką jak something.getClass()
. W Kotlin jestem świadomy, że something.javaClass
jest fajny, ale chcę móc uzyskać KClass
w podobny sposób. Widziałem składnię Something::class
, ale to nie jest to, czego potrzebuję. Potrzebuję uzyskać KClass zmiennej. Czy taka funkcjonalność istnieje?Kotlin: Równoważnik getClass() dla KClass
34
A
Odpowiedz
53
Najprostszym sposobem osiągnięcia tego celu, ponieważ Kotlin 1.1 jest class reference syntax:
something::class
Jeśli używasz Kotlin 1.0, można konwertować uzyskanej klasy Java do instancji KClass wywołując właściwość .kotlin
rozszerzenia:
something.javaClass.kotlin
8
Ponieważ język nie obsługuje jeszcze bezpośredniego sposobu uzyskania tego, consider defining an extension method for now.
fun<T: Any> T.getClass(): KClass<T> {
return javaClass.kotlin
}
val test = 0
println("Kotlin type: ${test.getClass()}")
Lub, jeśli wolisz właściwość:
val<T: Any> T.kClass: KClass<T>
get() = javaClass.kotlin
val test = 0
println("Kotlin type: ${test.kClass}")
Powiązane problemy
- 1. Konwersja Kotlin za KClass do regularnej klasy w Javie
- 2. Równoważnik Java dla .charCodeAt()
- 3. Równoważnik Mylyn dla Netbeans?
- 4. Równoważnik gettimeday() dla Windows
- 5. Najlepsza międzynarodowa alternatywa dla getClass(). GetResource()
- 6. Równoważnik rozmiaru C dla makr
- 7. Równoważnik get_or_create dla dodawania użytkowników
- 8. Powrót rodzaj metody getClass
- 9. getClass(). GetMethod ("name", unknown)
- 10. Czy istnieje alternatywa dla getClass(). GetResource() dla Static ImageIcon
- 11. Kotlin ciężko zaprzepaszczony w górę do wywnioskowanego (na miejscu) parametru
- 12. Scala classOf vs getClass
- 13. Zastosowanie metody getClass() metoda
- 14. Oprawa na mapę z typem KClass
- 15. Pandas SQL równoważnik dla "nie równy" klauzula
- 16. Równoważnik Sys V SEM_UNDO dla semaforów posix
- 17. Mockito ArgumentCaptor dla funkcji Kotlin
- 18. getClass(). GetClassLoader(). GetResourceAsStream() buforuje zasób
- 19. Ładowanie pliku przez getClass(). GetResource()
- 20. Jak korzystać getClass() getResource() metoda
- 21. Równoważnik setdefault w Go?
- 22. Równoważnik WPF właściwości AccesibleName
- 23. Adnotacje Proguard i Kotlin-Reflect/Kotlin
- 24. Równoważnik DataTable w Javie
- 25. Równoważnik include() w HTML
- 26. Równoważnik "rzutu" w R
- 27. Python Równoważnik setInterval()?
- 28. C# Równoważnik Java IdentityHashMap
- 29. Równoważnik pętli zagnieżdżonej
- 30. Równoważnik "tego" wskaźnika
dowolnym miejscu mogę śledzić realizację czegoś :: klasie? – Nishad
@Nishad Najprostszym miejscem byłoby spojrzenie na wygenerowany kod bajtowy (np. Z 'javap') –