Netbeans 8 调试器,如何使用高级格式化程序查看变量值



我确实需要 Netbeans 调试器使用特定的格式化程序显示变量数据。我还知道如何使用选项面板中的基本格式化程序配置,但在这种情况下,我需要更强大的功能。

特别是我有一个包含复杂数据结构的类"ToView"。另一个名为"FormatItCorrect"的类,其方法为"format",它将ToView类作为参数,并将我想看到的字符串返回调试器。

public String format(ToView instance); 

例:

String desiredString = FormatItCorrectly.format(toViewInstance);

在选项面板中 -> Java -> Java 调试器中,我添加了一个名为"自定义格式化程序"的新变量格式化程序,并作为类类型"ToView",现在我必须将什么作为代码片段放入字段"作为代码片段的结果格式化的值"?

在 NetBeans 的"变量格式化程序"对话框中,需要输入要对其使用自定义格式的类类型的完整包和类名。

因此,例如,您需要输入"类类型"字段为

com.myapp.ToView

假设您的类位于 com.myapp 包中。

为了充分利用 NetBeans 中的自定义格式化程序,您应该在类 ToView 中添加一个方法,将调用该方法来设置其格式。 然后,此方法可以调用格式化程序来生成格式正确的字符串。

因此,您可以在ToView类上创建一个方法

public String format() {
  return FormatItCorrectly.format(this);
}

然后,在"NetBeans 变量格式化程序"对话框中,将"格式化为代码段结果的值"指定为:

format();

如果不想将现有代码更改为具有"format(("方法,则可以定义要调用的自定义变量格式化程序并返回格式正确的对象。 如以下示例所示,将"格式化为代码片段结果的变量"定义为:

Class.forName("com.myapp.FormatItCorrectly");
return FormatItCorrectly.format(this);

你可以在这里看到,我们必须使用 Class.forName(( 方法将 FormatItCorrect 类的实例加载到调试器中,以便我们可以调用它的 format(( 方法。 调试器只能在出于格式化目的的范围内调用类的方法,因此我们需要确保 FormatItCorrect 类在范围内,然后再尝试使用它。

最新更新