C# 是我最熟悉的语言,但工作时使用 Java。我想你可以说我对使用 Visual Studio IDE 非常满意。我喜欢它的调试器的一件事是我可以将监视变量(Eclipse 中的“表达式”)any表达。因此,我可以在调试时毫无问题地查看特定字段公共或非公共的值、调用方法等。
看来我不能在 Eclipse 中做同样的事情。我必须调用该字段的关联 getter 方法(假设它有一个)。如果它没有,我要么必须暂时添加一个,以便我可以查看它,并记得在完成后将其删除,要么我只是 SOL。
How can I put a watch expression for an object on one of its private fields? Or am I just doing it wrong and I have to craft special expressions to view them?
(Or is there a better way for me to get the information that I want?)
e.g.,
我有一个HttpServletRequest
并想关注requestURI
。如果我只查看请求变量,它会列出很多字段,而且信息太多了。我只对对象中的一件事感兴趣,因此为了最大限度地减少这种情况,我想为那一件事添加一个监视表达式。
字段名称显然是requestURI
所以我添加了表达式:request.requestURI
。 Eclipse 会抛出一个错误,指出它不是一个字段(确实如此,只是不是公开的)。我不能直接进入现场,而是必须进入吸气剂:request.getRequestURI()
效果很好。但我不能总是指望 getter 可用。
The Variables view
The Expressions view
Eclipse 评估表达式时考虑了私有/受保护的字段Declared Type
,不属于Actual Type
.
Example:
Number n1 = new Integer(1000);
Integer n2 = new Integer(1000);
表达方式:
n1.value can't be evaluate
n2.value returns 1000, perfectly
另一种方法是使用DetailFormatter
(右键单击变量 > 新建详细信息格式化程序)。
当显示类型对象的文本表示形式时(例如,在变量视图中),Eclipse 将使用此表达式而不是 toString() 方法。
Your DetailFormatter
(for ApplicationHttpRequest
) 可:
requestURI
or
"URI: " + requestURI + "\n" +
"Path: " + servletPath
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)