2010-04-25 12 views
0

我製作了一個eclipse視圖,該視圖使用來自其他視圖的選定元素。 假設我在編輯器中打開了一個java文件,其中包含以下字段: private String world =「world!」 private String hello =「hello」+ world;在日食視圖中獲取所選java字段的值

當我在Outline視圖中選擇「hello」時,我可以獲得IFiled選擇,並且可以訪問它的屬性,但是我需要的是該字段的真正值(「hello world!」)。 任何想法我怎麼能做到這一點? 謝謝。

回答

0

變量在運行前沒有可用的值信息(可能除了常量值),所以不能評估這些表達式(除非使用對變量的一些認真推斷)。而且我認爲即使在理論上也可以評估這些表達式,因爲引用的變量甚至可以從外部輸入(在編譯期間不可用)獲得它們的值。另一方面,可以使用JDT調試器評估這些情況,出現這種情況的顯示視圖和/或Inspect選項。這樣就可以獲得選定的值,因爲它們可以從JVM中讀取。另一方面,這些信息在Java AST中不可用,但您必須使用調試器模型。

+0

你能給我一個關於如何使用它的提示......我似乎無法找到任何有關這方面的信息,或者我沒有正確地搜索。哦..是的,這隻會用於恆定值。 – Yasko 2010-04-25 22:13:31

+0

我不知道代碼的確切結構,但我會查看org.eclipse.jdt.debug.ui插件的源代碼。 調試器不依賴於僅使用常量值的事實,而是可以評估每一個項目。另一方面,與AST的情況不同,我不認爲,任何簡單的解決方案都是可能的(例如,您必須手動評估常量,但我不太瞭解這個領域)。 – 2010-04-26 07:53:52

+0

那麼我想出的另一個「解決方案」是從項目的輸出目錄加載我需要的類......並使用反射來獲取值。我也會看看debug.ui。謝謝您的幫助 :) – Yasko 2010-04-26 16:51:23