-1

我在java中有一个对象,我知道这个对象包含对我有用的信息,问题是我不知道字段的名称,我不知道这个对象是否包含真实数据或只是引用,考虑到这一点和事实上我只知道这个对象的标签,我有什么选项来调试这个数据结构并从中获取信息?

可以列出与特定类型对应的每个对象吗?

4

4 回答 4

3

要打印(和搜索)类中的字段:

static Object fieldOdClass(final String className,
        final String valeurRecherche1) {
        try {
            final Field[] f = Class.forName(className).getFields();
            for (int i = f.length - 1; i >= 0; i--) {
                System.out.println(f[i].toString());
                if (f[i].toString().endsWith(valeurRecherche1)) {
                    return f[i].toString();
                }
            }
        } catch (final ClassNotFoundException e) {
            // manage errors;
        }
    }
于 2012-07-13T10:07:59.117 回答
1

打开源文件,然后查看大纲视图:

如果它在您的透视图中不可见,请转到:Window > Show View > Outline

这应该让您对对象提供的数据/方法有一个很好的概述。

于 2012-07-13T09:49:53.220 回答
1

解决此问题的最佳方法是让该对象处于调试模式,您可以在该模式下轻松地在 Watch View 中发现对象字段及其值。但是,如果您无法在调试中运行,这将变得很棘手。我建议的其他方法是toString()使用一些通用逻辑覆盖方法,该逻辑使用反射递归地输出所有内容。您可以在不使用任何 JSON/XML 序列化库实现的样板代码的情况下完成相同的操作。剩下的就是让它在这个地方工作。

于 2012-07-13T09:55:04.527 回答
1

您可以使用 Eclipse 中的 Debug 在运行时查看对象的所有属性。它非常有用,您无需创建任何代码。只需在读取对象的行处放置一个断点。此外,当您的应用程序在调试模式下运行并且读取对象的行被突出显示时,您可以按 CTRL+SHIFT+I 来查看详细信息。

于 2012-07-13T12:26:42.617 回答