Открытое поле Java доступно в отладчике, но не в коде Kotlin
1 ответ
если вы посмотрите в источнике, вы можете увидеть это:
/**
* The reported scaled density prior to any compatibility mode scaling
* being applied.
* @hide
*/
public float noncompatScaledDensity;
Это аннотировано
@hide
это означает, что поле технически не является частью SDK. Google использует аннотацию @hide, чтобы удалить классы и методы, которые не должны быть частью общедоступного SDK. Вот почему ваша IDE не может скомпилировать ваш код против них — их буквально не существует. Однако jar фреймворка Android на реальном устройстве содержит эти классы и методы, поэтому к ним можно получить доступ во время выполнения с помощью отражения.