我最近发现了图书馆kryonet,它非常棒,非常适合我的需求。用kryo注册课程的策略
但是,我遇到的一个问题是制定一个好的策略来注册所有可以传输的类。
我知道我可以在每个对象中写一个静态方法,它将返回它使用的所有类的列表,但我真的宁愿不必这样做(为我自己的时间目的,以及那些将会扩展这些对象的人)。
我在试图查看是否有方法从getClass()方法获取对象引用的所有类(在它的字段以及它的继承中),但我无法获得任何成功。
最后,我知道kryo有kryo.setRegistrationOptional(true),但我有一个非常困难的时间试图找出如何使用它。当这个选项打开时,如果我没有注册类,kryo似乎仍然会抛出异常。而且,这种方法应该比能够注册所有类要慢得多。如果第一次使用这种方法发送对象的速度很慢,我很好,但我不知道每次我想发送一个对象时是否会出现严重的性能下降。
理想情况下,我将有一个对象包,我想用kryonet发送。如果只是有人要扫描那个软件包并确定我需要注册的所有类,那就太棒了。现在不是所有的客户都需要注册每个对象,但这是一个单独的问题,我不知道是否有解决方案。
如果有人能指出我的方向是非常好的。