我尝试从Java中的捆绑对象中提取相关信息。该对象具有以下结构:
String name;
Array setOfOrders;
setOfOrders中的每个元素都有
int orderID;
String orderName;
List<BuildingBlock> listOfBlocks;
每个BuildingBlock都有
String shortName;
String fullName;
String blockID;
Array<Element> elements;
我试着查看源代码,但分支似乎无穷无尽。我尝试在NetBeans中使用调试模式,但每个第三个变量(setOfOrders,listOfBlocks,elements)都在不断扩展。这感觉就像试图找到哪些文件夹占用磁盘空间。使用资源管理器需要永远,而一些磁盘分析器显示空间使用的清晰地图。
那么,分析捆绑变量的最佳方法是什么?我应该完全扩展它并搜索可识别的数据结构吗?是否有命令(我不能要求工具,但我可以要求IDE命令,对吗?)来表示变量的结构?我应该依赖吸气剂和制定者吗?
答案 0 :(得分:2)
不确定你要做什么。如果要在运行时分析数据,唯一的方法是“我是否应该在调试模式下完全展开它并搜索可识别的数据结构”。
或者只是为循环编写一些代码,例如两个,循环遍历元素并将数据记录到system.out。然后你可以在字符串里面搜索。
答案 1 :(得分:2)
您最好的选择(按降序排序)是:
(a)希望作者发表好评
(b)阅读源代码(如果某些类被编译成.class或.java,则遇到麻烦)
(c)全部扩大*
for(i=0; i<2; i++){
而不是i<100000
来减小结构的大小。但是,如果此捆绑包是从SQL响应创建的,那么您可能会运气不好。 答案 2 :(得分:1)
首先,您可以尝试实施toString()
- 方法(如果尚未实施)。也许你可以通过打印结构或部分来获得一些有用的信息。
其次,如果您有这样的结构,您可能还有一些方法来查询数据结构。您可以使用它们来查询所需的信息。或者,如果不存在这样的方法,您可以编写它们,因为它们可能不仅需要进行调试,而且对您的应用程序也很有用。
答案 3 :(得分:1)
您有多种选择,每种选择都有自己的优点和缺点。
你可以实现toString方法,但是它失败了你的目的,因为要写它你需要知道一个变量的结构。
您可以使用反射,但这是一项专有功能,可能会在将来的版本中消失。
大型项目通常有几个巨大的全局变量(如session
,可能存储与此会话相关的所有内容)和数十个局部变量。局部变量的结构很简单。由于只有少数全局变量,因此您应该向团队负责人询问其结构。