Если xhr.abort();
вызывает перезагрузку страницы,
Затем вы можете установить onreadystatechange
перед тем, как прервать:
// ↓ prevent page reload by abort()
xhr.onreadystatechange = null;
// ↓ may cause page reload
xhr.abort();
К сожалению, private
члены внутренних классов Kotlin не доступны из внешнего экземпляра:
blockquote>
private
означает, что видимы только внутри этого класса
[114 ] Ссылка на Kotlin / Модификаторы видимостиТем не менее, Java не имеет таких ограничений с ее модификаторами видимости:
access разрешено, если и только если это происходит в теле типа верхнего уровня ( §7.6 ), которое включает в себя объявление члена или конструктора.
blockquote>
Спецификация языка Java / §6 Имена / §6.6 Контроль доступа / §6.6.1 Определение доступности [ 1110]Это один из немногих (раздражающих) случаев, которые я обнаружил, когда правила Котлина делают общий шаблон Java невозможным.
Единственные обходные пути (, если вы хотите сохранить свою текущую структуру), это переписать этот класс в Java или предоставить этому конструктору менее ограниченную видимость (например,
internal
.) [1120 ]Об этом было обсуждение на форумах Kotlin - кажется, что это ограничение JVM, и что оно работает только в Java, потому что компилятор генерирует соответствующие
synthetic
средства доступа.