首页 > 解决方案 > 如何将 JAVA 对象转换为 HTML 表格?

问题描述

我想要一种将 Java 对象转换为 HTML 表的通用方法,该表包含该对象的成员变量作为列名,并将该成员的值作为表中的值,如下所示:

class Person {

    public String _name;
    public int _age;

    public Person(){
        this._name = "John Doe";
        this._age = 2;
    }
};

如果对象类型为 person 我希望输出是这样的。

---------------------------
|    _name   | _age        |
---------------------------

|    John Doe | 2          |
---------------------------

问题是我无权访问类代码。

有没有一种通用的方法来实现一个可以接受任何类型的 Java 对象并打印成员变量及其值的函数?

我考虑过使用toString(),但它没有帮助,因为在我的情况下我无法覆盖它。

如果这是班级

class Person {

    public String _name;
    public int _age;

    public Person(){
        this._name = "John Doe";
        this._age = 2;
    }
};

那么PrintobjectToHTML();输出应该是

---------------------------
|    _name   | _age        |
---------------------------
|    John Doe |    2       |
---------------------------

标签: javahtmlserialization

解决方案


您可以使用反射来做到这一点。您可以为此使用 Class 类(参见-> https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html)。

例子:

Person p = new Person();
Class cls = p.getClass();
Field[] fields = cls.getDeclaredFields();
// loop through fields
for (Field field: fields) {
  Object value = field.get(p);
  // print value as html
}

推荐阅读