为了账号安全,请及时绑定邮箱和手机立即绑定

在Java中将任何对象转换为字节数组

在Java中将任何对象转换为字节数组

LEATH 2019-10-26 12:52:40
我有一个X类型的对象,我想在将其发送到S3之前将其转换为字节数组。有人可以告诉我该怎么做吗?我感谢您的帮助。
查看完整描述

3 回答

?
慕森王

TA贡献1777条经验 获得超3个赞

是的 只需使用二进制序列化即可。您必须使用每个对象,implements Serializable但是从那里开始很简单。


如果要避免实现Serializable接口,您的另一种选择是使用反射,并使用以下过程来对缓冲区进行数据读写:


/** 

 * Sets all int fields in an object to 0.

 *

 * @param obj The object to operate on.

 *

 * @throws RuntimeException If there is a reflection problem.

 */

 public static void initPublicIntFields(final Object obj) {

    try {

       Field[] fields = obj.getClass().getFields();

       for (int idx = 0; idx < fields.length; idx++) {

          if (fields[idx].getType() == int.class) {

              fields[idx].setInt(obj, 0);

          }

       }

    } catch (final IllegalAccessException ex) {

       throw new RuntimeException(ex);

    }

 }


查看完整回答
反对 回复 2019-10-26
?
慕森卡

TA贡献1806条经验 获得超8个赞

正如我在其他类似问题中提到的那样,您可能需要考虑压缩数据,因为默认的Java序列化有点冗长。您可以通过在对象流和字节流之间放置一个GZIPInput / OutputStream来实现。


查看完整回答
反对 回复 2019-10-26
  • 3 回答
  • 0 关注
  • 799 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信