Tôi muốn thực hiện chức năng đặc biệt nếu tôi gặp phải một lớp Kotlin so với một lớp Java chung. Làm thế nào tôi có thể phát hiện nếu nó là một lớp Kotlin?Tôi muốn phát hiện xem một lớp JVM là một lớp Kotlin hay không
Tôi đã hy vọng rằng việc gọi someClass.kotlin
sẽ ném một ngoại lệ hoặc thất bại nếu lớp học không phải là Kotlin. Nhưng nó kết thúc tốt đẹp các lớp Java. Sau đó, tôi nhận thấy rằng nếu tôi làm someClass.kotlin.primaryConstructor
nó có vẻ là null
cho tất cả các lớp java ngay cả khi họ có một constructor mặc định, đó là một dấu hiệu tốt? Nhưng điều đó có thể trả về null
cho một lớp học Kotlin không?
Cách tốt nhất để nói "đây có phải là lớp Kotlin không?"
Tại sao không so sánh trực tiếp lớp học? 'it.annotationClass == Metadata :: class' – Raman
Lớp không truy cập được, là' nội bộ ' –
Ah. Dường như nó có thể truy cập được từ Java. Ví dụ, tôi đã viết yêu cầu kéo (unmerged) này cho Spring Framework: https://github.com/spring-projects/spring-framework/pull/1060/files#diff-244315b45582a5b7573a15644b16c373R48 (có, họ muốn nó được viết bằng Java , eek). – Raman