调试时如何直接在IDE中查看其他对象的私有字段?

2024-03-14

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 Variables view

the expressions 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(使用前将#替换为@)

调试时如何直接在IDE中查看其他对象的私有字段? 的相关文章

  • “源兼容性”和“目标兼容性”有什么区别?

    之间有什么关系 区别sourceCompatibility and targetCompatibility 当它们设置为不同的值时会发生什么 根据工具链和兼容性 https docs gradle org current userguide
  • 连接外部 Accumulo 实例和 java

    我正在尝试使用 Accumulo 连接到虚拟机 问题是 我无法将其连接到 Java 中 我可以看到 Apache 抛出的网页 但我无法让它与代码一起工作 我认为这是缺乏知识的问题而不是真正的问题 但我找不到这方面的文档 所有示例都使用 lo
  • Java 中的 <-- 是什么? [复制]

    这个问题在这里已经有答案了 我遇到了下面的片段 它输出到4 3 2 1 我从来没有遇到过 lt 在爪哇 Is lt 使 var1 的值变为 var2 的运算符 public class Test public static void mai
  • 为什么在 10 个 Java 线程中递增一个数字不会得到 10 的值?

    我不明白 a 的值为0 为什么 a 不是10 那段代码的运行过程是怎样的 是否需要从Java内存模型来分析 这是我的测试代码 package com study concurrent demo import lombok extern sl
  • Java LostFocus 和 InputVerifier,按反向制表符顺序移动

    我有一个 GUI 应用程序 它使用 InputVerifier 在产生焦点之前检查文本字段的内容 这都是很正常的 然而 昨天发现了一个问题 这似乎是一个错误 但我在任何地方都找不到任何提及它的地方 在我将其报告为错误之前 我想我应该问 我在
  • 维护一组通用的 Eclipse 首选项

    每当我切换工作区 Eclipse 安装时 我都需要复制 重做首选项 编译器设置 字体大小 系列 代码格式化程序 java代码模板 编辑器模板 代码清理 我想以统一的方式维护这些设置 最好是在源代码控制下 我怎样才能做到这一点 我知道创建新工
  • JOOQ 忽略具有默认值的数据库列

    看来JOOQ完全忽略了数据库列的默认值 既不会更新 ActiveRecord 对象 也不会在 INSERT 时跳过此列 相反 它尝试将其设置为 NULL 这在 NOT NULL 列上失败 Example CREATE TABLE bug f
  • ThreeTen 向后移植与 JSR-310 的比较

    由于某些原因 我们现在无法使用 java 8 我们仍然停留在 java 7 上 不过 我想使用新的JSR 310 date time APIs现在 使用官方向后移植 ThreeTen http www threeten org threet
  • 在 Spring 中为 @Pathvariable 添加类级别验证

    在发布这个问题之前 我已经做了很多研究并尝试了很多可用的解决方案 这是我陷入的棘手情况 我有一个 Spring 控制器 它有多个请求映射 它们都有 PathVariables 控制器如下所示 Controller EnableWebMvc
  • 为什么在将 String 与 null 进行比较时会出现 NullPointerException?

    我的代码在以下行中出现空指针异常 if stringVariable equals null 在此语句之前 我声明了 stringVariable 并将其设置为数据库字段 在这个声明中 我试图检测该字段是否有null值 但不幸的是它坏了 有
  • 如何更改 Swagger-ui URL 前缀?

    我正在使用 Springfox Swagger2 和 Spring boot 1 5 9 我可以通过此链接访问 swagger UI http localhost 8090 swagger ui html http localhost 80
  • 如何在 IntelliJ IDEA 中运行 akka actor

    来自 Akka 网站文档 然后 这个主要方法将创建所需的基础设施 运行演员 启动给定的主要演员并安排 一旦主要参与者终止 整个应用程序就会关闭 因此 您将能够使用类似于以下的命令运行上面的代码 下列的 java classpath akka
  • UseCompressedOops JVM 标志有什么作用以及何时应该使用它?

    HotSpot JVM 标志是什么 XX UseCompressedOops我应该做什么以及什么时候使用它 在 64 位 Java 实例上使用它 与不使用它 时 我会看到什么样的性能和内存使用差异 去年大多数 HotSpot JVM 都默认
  • 数据库中的持久日期不等于检索日期

    我有一个具有 Date 属性的简单实体类 此属性对应于 MySQL 日期时间列 Entity public class Entity Column name start date Temporal TemporalType TIMESTAM
  • 从三点求圆心的算法是什么?

    我在圆的圆周上有三个点 pt A A x A y pt B B x B y pt C C x C y 如何计算圆心 在Processing Java 中实现它 我找到了答案并实施了一个可行的解决方案 pt circleCenter pt A
  • titledBorder 标题中的图标

    您好 是否可以在 titledBorder 的标题中放置一个图标 例如以下代码 import java awt GridLayout import javax swing JFrame import javax swing JLabel i
  • 用于请求带有临时缓存的远程 Observable 的 RxJava 模式

    用例是这样的 我想暂时缓存最新发出的昂贵的Observable响应 但在它过期后 返回到昂贵的源Observable并再次缓存它 等等 一个非常基本的网络缓存场景 但我真的很难让它工作 private Observable
  • Spring Data Rest 多对多 POST

    首先 让我解释一下我的用例 这非常简单 有一个用户实体和一个服务实体 我使用 UserService 作为连接实体 连接表 在用户和服务之间建立多对多关联最初 会有一些用户集和一些服务集 用户可以在任何时间点订阅任何服务 在这种情况下 将向
  • Java 中清除嵌套 Map 的好方法

    public class MyCache AbstractMap
  • 检测到 JVM 正在关闭

    我有一个使用 addShutdownHook 处理 Ctrl C 的 Swing 应用程序 它工作正常 直到我的关闭任务之一调用一个在正常情况下更改 JLabel 文本的函数 此时它挂起 我认为问题是 Swing EDT 已终止或正在等待某

随机推荐

  • PHP 中保持登录状态或用户登录时记住我的代码是什么

    我不知道如何编写 php 代码保持登录状态或记住我当用户登录时检查选项 我想让用户保持登录状态至少 60 分钟 直到用户关闭浏览器 PHP 中的代码是什么 如果您正在使用session http www php net manual en
  • Safari 的媒体记录 API 替代方案

    我需要通过浏览器从相机录制视频 我已经使用媒体记录 API 为 Chrome 和 Firefox 完成了此操作 var options mimeType video webm codecs vp9 mediaRecorder new Med
  • 将我的日历应用程序与其他日历同步

    我希望我的日历应用程序与其他日历应用程序 雅虎日历 Google 日历 iCloud 日历 Microsoft Exchange 和 Microsoft Outlook 实时同步 有什么办法可以做到吗 我知道我们可以为谷歌日历做到这一点 但
  • 创建 C++ 枚举和依赖数据结构时如何避免重复? [复制]

    这个问题在这里已经有答案了 可能的重复 枚举到字符串 如果无效 未找到 则返回枚举整数值 https stackoverflow com questions 10175260 enum to string return the enum i
  • 如何对数组进行分组

    我正在尝试使用相同的标签对相似的对象进行分组 目前 这是我收到的 JSON const sizes id value 2496 label XS value 2499 label S type First Size id value 286
  • 如何通过后台服务在android中每天的特定时间重复通知

    您好 我正在开发应用程序 我通过后台服务设置了用户输入日期和时间的通知 现在我想设置每天下午 6 点的通知 闹钟 询问用户是否要添加另一个条目 我怎样才能实现这个目标 我应该使用相同的后台服务还是广播接收器 请给我更好的解决方案 教程将是个
  • 如何在不配置浏览器的情况下构建本地 Web 代理

    Netnanny 或 k9 Web Protection 如何在不配置浏览器的情况下设置 Web 代理 如何做呢 直接使用WinSock 或者在NDIS http en wikipedia org wiki Network Driver I
  • ARM 模板数组参数

    我有一个带有 Web 应用程序警报规则的 ARM 模板 我希望能够在其中配置哪些电子邮件收到警报 电子邮件警报操作的片段如下 action odata type Microsoft Azure Management Insights Mod
  • 检测到可能存在 DNS 欺骗。远程主机标识已更改

    我最近更换了服务器 因此我有了一个新的 IP 地址 当我尝试使用时git fetch remote repository 我明白了 gt C Users path app gt git fetch remote repository gt
  • Java RMI 和 RPC 有什么区别?

    Java RMI 和 RPC 之间的实际区别是什么 我在一些地方读到 RMI 使用对象 RPC是基于C的 因此它具有结构化编程语义 另一方面 RMI是基于Java的技术 并且是面向对象的 通过 RPC 您可以调用导出到服务器中的远程函数 在
  • 检测麦克风是否打开

    有没有办法以编程方式检测 Windows 上的麦克风是否打开 不 麦克风不会告诉您它们是否 打开 或者特定的声道是否已连接到麦克风设备 您能做的最好的事情就是从您怀疑是麦克风的输入通道 例如Windows默认输入设备 通道 读取音频数据 并
  • 如何获取数据列表的更改事件?

    我正在使用数据列表 需要检测用户何时从下拉列表中选择某些内容 类似的问题已被问到 https stackoverflow com questions 16027746 jquery event when html5 datalist opt
  • 将 SVG 图像转换为 png 以供不支持的浏览器使用 - 后备 - Modernizer.js(?) [重复]

    这个问题在这里已经有答案了 我正在考虑转几个SVG我的网站上的图像PNG对于不支持的浏览器SVG适当地 我主要对显示的基于文本的问题有疑问IE 显示的字体完全错误 所以我想我应该创建一个后备PNG 我已经尝试为此寻找一个很好的演练 我自认是
  • 使用函数式编程有效地计算素数

    通过回顾 Project Euler 并解决一些问题 我逐渐熟悉了 F 许多早期问题都由素数组成 环顾四周后 我想出了以下解决方案 let primesL let rec prim n sofar seq if sofar gt List
  • 如何在拖动 UICollectionViewCell 时实现透明背景或圆角

    我确定有must这是一种简单的方法 但我已经花了很长时间在各种兔子洞里 到目前为止还没有成功 我有一个支持拖放的集合视图 被拖动的单元格有一个UIImageView in the contentView 并且图像视图的背衬层应用了角半径 单
  • 如果其中一个进程意外终止,进程间内存会发生什么情况?

    如果您对动机感兴趣 我将在接下来的几句话中详细说明 如果不是 请跳至问题 我正在考虑制作快速记录器 但当程序崩溃时不受影响 又名最后一些日志消息不会丢失 所以我的想法是写入共享内存 ringbuffer 并让另一个低优先级进程从中读取并进行
  • 如何在jsf中启用浏览器缓存

    我使用 JSF 2 0 创建了一个 Web 应用程序 我收到朋友的反馈说我应该执行 浏览器缓存 因为我有很多图像 但是我不知道如何在 JSF 中做同样的事情 任何想法 提示将不胜感激 关于要做什么的概念也会起作用 只需使用
  • 继承和多态性的低级细节

    这个问题是我心中的一大疑惑 也很难用语言来形容 有时它看起来很明显 有时却很难破解 所以问题是这样的 class Base public int a number Base virtual void function1 virtual vo
  • 如何通过 Java High Level Rest Client 实现安全弹性搜索

    我是弹性搜索新手 通过将我的 Spring boot 应用程序与 Elastic 搜索集成Java High Level Rest Client 我已经配置了 JHLRC bean 如下所示 它工作正常 Bean destroyMethod
  • 调试时如何直接在IDE中查看其他对象的私有字段?

    C 是我最熟悉的语言 但工作时使用 Java 我想你可以说我对使用 Visual Studio IDE 非常满意 我喜欢它的调试器的一件事是我可以将监视变量 Eclipse 中的 表达式 any表达 因此 我可以在调试时毫无问题地查看特定字