我在java中有一个对象,我知道这个对象包含对我有用的信息,问题是我不知道字段的名称,我不知道这个对象是否包含真实数据或只是引用,考虑到这一点和事实上我只知道这个对象的标签,我有什么选项来调试这个数据结构并从中获取信息?
可以列出与特定类型对应的每个对象吗?
我在java中有一个对象,我知道这个对象包含对我有用的信息,问题是我不知道字段的名称,我不知道这个对象是否包含真实数据或只是引用,考虑到这一点和事实上我只知道这个对象的标签,我有什么选项来调试这个数据结构并从中获取信息?
可以列出与特定类型对应的每个对象吗?
要打印(和搜索)类中的字段:
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;
}
}
打开源文件,然后查看大纲视图:
如果它在您的透视图中不可见,请转到:Window > Show View > Outline
这应该让您对对象提供的数据/方法有一个很好的概述。
解决此问题的最佳方法是让该对象处于调试模式,您可以在该模式下轻松地在 Watch View 中发现对象字段及其值。但是,如果您无法在调试中运行,这将变得很棘手。我建议的其他方法是toString()
使用一些通用逻辑覆盖方法,该逻辑使用反射递归地输出所有内容。您可以在不使用任何 JSON/XML 序列化库实现的样板代码的情况下完成相同的操作。剩下的就是让它在这个地方工作。
您可以使用 Eclipse 中的 Debug 在运行时查看对象的所有属性。它非常有用,您无需创建任何代码。只需在读取对象的行处放置一个断点。此外,当您的应用程序在调试模式下运行并且读取对象的行被突出显示时,您可以按 CTRL+SHIFT+I 来查看详细信息。