Возьмите эти два класса Java:
class User {
final Inventory inventory;
User (Inventory inv) {
inventory = inv;
}
}
class Inventory {
final User owner;
Inventory (User own) {
owner = own;
}
}
Есть ли способ без использования отражения *, чтобы снять это? На самом деле я этого не ожидаю, но это не может помешать спросить.
Обновление: поскольку в построении байткода есть два шага (1. выделить объект, 2. call constructor **), может ли это быть (ab) использоваться для этого, с рукописным байт-кодом или пользовательским компилятором? Я говорю о выполнении первого шага для обоих объектов, а затем для шага 2 для обоих, используя ссылки с шага 1. Конечно, что-то подобное было бы довольно громоздким, и эта часть вопроса является академической.
(* Потому что отражение может вызвать проблемы с менеджером безопасности)
(** говорит мои ограниченные знания)