![]() |
1
6
我假设你只想找到一个特定的值并追踪它的来源。所有这些,你想在调试的时候做。我建议两种选择。 使用 -将对象序列化为json字符串,并对结果执行手动文本搜索。你会需要的json.jar (或任何其他解析器)。
会产生这样的结果(我通过创建一个包含一些嵌套字段、列表和映射的对象来模拟这一点)
选项2 将对象转换/序列化为 XML格式 . 使用 X流 为此,这将是所有可用解析器中最简单的。只有两行代码,
会产生,
以上任何一种方法,您都可以将结果打印到控制台或打印到文件并手动检查。 或者,您也可以使用反射,在这种情况下,您将不得不编写大量的代码和大量的时间来测试它。 |
![]() |
2
4
|
![]() |
3
2
创建一些静态方法,假设:
并将其实现为(例如)数据挖掘。的用法org.apache.pivot.beans.BeanAdapter -例如可以帮助你治疗 另一个有用的签名:
为什么这样有用?因为您可以在调试的任何时候使用eclipse的inspector来计算这个方法的结果 |
![]() |
4
1
如果类是可序列化的,我经常使用XStream将对象转储到xml。 如果没有,这里有一些代码可以让你开始使用反射模式。它不像您需要的那样递归,但是可以很容易地修改。
|
![]() |
5
1
|
![]() |
6
0
一些提示- 1)您可以使用shift并单击变量/方法/类,这将使您正确地找到它。
3)命令和O将向您显示类的大纲,以便您可以快速导航 4)Quick Type Hierchy将向您展示变量在类的总体方案中的位置。 希望有帮助 |
![]() |
7
0
打印出一个大对象的值通常会有帮助,这样您就可以仔细地查看它们。在java和C++中,我都编写了函数来打印对象的所有内容,以及递归来处理嵌入对象。调试对象变量的硬拷贝是一种古老的方式,但对于非常复杂的情况,它将导致额外的发现。 |
![]() |
8
0
http://www.google.de/search?hl=en&q=java+inmemory+data+store+search )而不是使用它的搜索功能。在执行测试后,您应该感觉到它是否在您的情况下表现更好。如果你集中阅读这个对象,也许使用内存数据库会更好。 |
![]() |
10
0
@Thomas Mueller's answer 有这些元素,但我的#3和#4稍微健壮一些。他的代码似乎不适用于我的错误测试类。但我可能还是错过了一些小案子。请不要把这个发给我的Java导师。
|
![]() |
11
-1
如果复杂对象是由java对象组成的,比如字符串、列表、映射等等, 您可以通过反射对它们进行迭代,当您发现您正在查看的“对象”是字符串或int(以及类似的)调用toString时
|