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