¿Hay alguna manera de identificar una class de datos Kotlin de una class regular de Kotlin?

¿Hay alguna manera de identificar una class de datos Kotlin de una class regular de Kotlin? Como usar el reflection tal vez?

Desde 1.1 hay una propiedad isData en la class

MyDataClass::class.isData 

No puede leer data anotación de data por reflexión porque tiene retención pnetworkingeterminada ( CLASS ).

Puede intentar usar algunas heurísticas, como verificar que contenga los siguientes methods:

  • public final copy
  • public final component{N}
  • public static copy$default

Pero tenga en count que algunas cosas de esto son detalles de implementación y pueden cambiarse en el futuro.

  • ¿Es seguro llamar a kclass.memberProperties en un object desconocido (Cualquiera)?
  • String.intern () devuelve diferentes valores en un controller JDBC
  • Kotlin: ¿Cómo puedo usar la reflexión en los packages?
  • ¿Puedo get una KFunction de una variable del tipo de function en Kotlin?
  • ¿Puedo usar kotlin.reflect para get un valor de un campo
  • Interoperabilidad de reflexión de Kotlin con Java
  • Kotlin comtesting si la function requiere parámetro de instancia
  • ¿Cómo obtengo las funciones declaradas de una class Kotlin (KClass en M12)?
  • kotlin reflexión verificación nullable types
  • Kotlin enlazó la incoinheritance de las references invocables
  • Kotlin: isAssignableFrom y reflexiones del tipo de reflexión