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