Стратегия регистрации классов с крио
Я недавно открыл для себя библиотеку kryonet, которая суперская и отлично подходит для моих нужд.
Однако одна проблема, с которой я сталкиваюсь, - это разработка хорошей стратегии для регистрации всех классов, которые можно перенести.
Я знаю, что могу написать статический метод в каждом объекте, который будет возвращать список всех классов, которые он использует, но я бы действительно не хотел этого делать (для своих собственных временных целей, а также для тех, кто будет расширение этих объектов).
Я пытался выяснить, есть ли способ получить все классы, на которые ссылается объект (в его полях и наследовании), из метода getClass (), но я не смог добиться успеха.
Наконец, я знаю, что у kryo есть kryo.setRegistrationOptional (true), но мне очень трудно понять, как его использовать. Когда эта опция включена, kryo по-прежнему выдает исключения, если я не зарегистрировал классы. Кроме того, этот метод гораздо медленнее, чем возможность регистрации всех классов. Я в порядке, если в первый раз вам нужно отправить объект, используя этот метод, медленно, но я не знаю, в порядке ли я с серьезным снижением производительности каждый раз, когда я хочу отправить объект.
В идеале у меня будет пакет объектов, которые я хочу отправить с помощью kryonet. Если бы было только какое-то сканирование этого пакета и определение всех классов, которые мне нужно зарегистрировать, это было бы отлично. Теперь не всем моим клиентам потребуется регистрировать каждый объект, но это отдельная проблема, и я не знаю, есть ли решение для этого.
Если бы кто-нибудь мог указать мне правильное направление, это было бы превосходно.