[问题] 如何取得一个object的大小?

楼主: RouterHsieh (醉卧美人膝,醒掌天下权)   2015-06-11 06:52:04
我在用NIO的SocketChannel的时候碰到一个问题,
就是当Server端接受一个Client之后,
理论上我要attach一块ByteBuffer给该channel。
问题是我从Client那边传过来的其实是一个自订的Object,
(那是一个自订的Class,先转成ByteArray后在转成ByteBuffer)
所以我在Server这边不知道该allocate多大的sizs囧
以前我在写C的时候,只要使用sizeof就可以搞定了,
可是在Java上面似乎没有这个功能,可以请问一下各位前辈该怎么办吗0rz
作者: ssccg (23)   2015-06-11 09:22:00
可以用sizeof的话大小本来就是确定的吧,算一下不就知道
作者: popcorny (毕业了..@@")   2015-06-11 09:24:00
变成ByteArray不就有Lenght了吗,然后先传len再传data
楼主: RouterHsieh (醉卧美人膝,醒掌天下权)   2015-06-11 11:02:00
楼上的前辈意思是说,Object的大小其实就是它转成ByteArray后的size吗@@
作者: Killercat (杀人猫™)   2015-06-11 12:42:00
其实你的问题是serialize/deserialize怎么传type这很多方法可以做到,不过我不太确定你想要的是这个
作者: Chikei ( )   2015-06-11 15:22:00
转个方向想,如果你用C要收不定长度的资料要怎么收?一样下去搞就好了
作者: ctrlbreak   2015-06-11 19:54:00
自订protocol就可以了
作者: Killercat (杀人猫™)   2015-06-11 21:46:00
其实很多现成的方法可以用 java自己的serialize或者转json 不过最常见的还是google的protocal buffer

Links booklink

Contact Us: admin [ a t ] ucptt.com