2016-06-14 65 views
4

我嘗試從Java中的捆綁對象中提取相關信息。此物體具有結構:如何在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命令,對嗎?)來表示一個變量的結構?我應該依賴getter和setters嗎?

+0

你是什麼意思分支?源代碼管理系統分支機構 –

+0

你如何期待這個簡化?您正在查看的數據非常複雜;沒有辦法解決複雜問題。 –

+0

我不太清楚你的意思。深入幾節課。它的美(至少如果它是由一個合理的編碼器編程)是每個班都有明顯的作用。我不認爲有什麼方法可以深入研究代碼,即使它在開始時並不明顯。 – RecursiveExceptionException

回答

1

你有幾個選擇,每個選項都有自己的優點和缺點。

你可以實現toString方法,但是它會破壞你的目的,因爲編寫它你需要知道變量的結構。

您可以使用反射,但這是專有功能,可能會在未來版本中消失。

大型項目通常有幾個巨大的全局變量(如session,可能存儲與此會話相關的所有內容)以及數十億個局部變量。局部變量的結構很簡單。由於只有少數全局變量,你應該詢問組長的結構。

2

不知道你在做什麼。如果你想在運行時分析數據,唯一的方法是在調試模式下「我應該完全擴展它並搜索可識別的數據結構」。

或者只是寫一些代碼,例如循環遍歷元素的循環,並將數據記錄到system.out。然後你可以在字符串裏搜索。

1

首先,您可以嘗試實施toString()-方法,如果它尚未實施。也許你可以通過打印結構或其中的一部分來獲得一些有用的信息。

二,如果你有這樣的結構,你也可能有一些方法來查詢數據結構。您可以使用它們來查詢所需的信息。或者如果不存在這樣的方法,則可以編寫它們,因爲它們不僅可用於調試,還可能對您的應用程序有用。

2

你最好的選擇(降序排序)是:
(a)爲希望筆者提出很好的意見
(B)讀取源代碼(如果有的班級被編譯成.class或的.java你有麻煩了)。
(三)擴大它的所有*

  • 您可能能夠通過設置for(i=0; i<2; i++){而不是i<100000降低結構的大小。但是,如果此包是從SQL響應中創建的,那麼您可能不太順利。