2010-04-25 50 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