有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何在Java中记录任意对象的内部结构?

我有一个结构未知的Java对象。现在我想将这个结构(属性及其值)输出到日志文件中。当然我对递归模式很感兴趣。有什么图书馆可以帮助我吗


共 (6) 个答案

  1. # 1 楼答案

    Java附带的Java序列化应该可以做到这一点。它将是二进制格式的

    还有可以由JAXB提供的XML序列化

  2. # 2 楼答案

    你应该使用反射。请看一下java.lang.Class类,特别是.getFields()方法

  3. # 4 楼答案

    XStream非常擅长打印对象图,即使在类中没有任何额外配置或额外代码的情况下也能处理循环(即,不会弄乱toString()。只需添加库,您就可以对任何内容执行此操作,并获得漂亮、有用的输出:

    log.debug("The object: {}", new XStream().toXML(anyObject));
    

    这将为您提供XML输出。如果您更喜欢JSON,您可以通过XStream JSON tutorial中详细介绍的稍微多做一点工作来获得它

  4. # 5 楼答案

    你可以使用反射

    getClass,然后检查每个实例变量并继续(可以专门处理某些对象(如字符串))

  5. # 6 楼答案

    我建议您看看ApacheCommonsBeanutils或ApacheCommonsLang,特别是StringBuilder