Есть ли способ идентифицировать класс данных Kotlin из обычного класса Kotlin?
Есть ли способ идентифицировать класс данных Kotlin из обычного класса Kotlin? Может быть, с помощью отражения?
2 ответа
Решение
Начиная с версии 1.1 в классе есть свойство isData
MyDataClass::class.isData
Ты не умеешь читать data
аннотация отражением, потому что она имеет сохранение по умолчанию (CLASS
).
Вы можете попробовать использовать некоторую эвристику, например, проверить, что она содержит следующие методы:
public final copy
public final component{N}
public static copy$default
Но обратите внимание, что кое-что из этого является деталями реализации и может быть изменено в будущем.