调试'详细格式化程序'如何在eclipse中解析类?

时间:2010-08-24 13:30:23

标签: java eclipse debugging

在eclipse中,您可以在Preferences - >下设置自定义“Detail Formatters”。 Java - >调试 - > Detail Formatters在调试时以自定义方式打印对象。我想使用实用程序类使用格式化程序打印对象:

return com.foo.Bar.xzyToString(this);

其中xzyToString是Bar返回String的静态方法,但是eclipse抱怨它

'无法解析类型:com.foo.Bar.xzyToString'。将“Bar”添加到项目构建路径不允许找到该类。我如何/在何处更新eclipse用于解析详细格式化程序中名称的路径?

3 个答案:

答案 0 :(得分:3)

详细格式化程序挂钩到Eclipse JDI框架并使用当前正在调试的类的类加载器。因此,您只能使用正在运行的应用程序知道的类。

由于在调试时只需要实用程序类,因此可以将类添加到启动配置的类路径中(或将其直接添加到项目中)。不幸的是,我不知道为所有发布自动执行此操作的方法。

答案 1 :(得分:1)

在调用detail formatter之前,还需要加载该类。如果它是您在应用程序中其他位置使用的类,这通常不会成为问题,但如果您仅将其用于详细格式化,则始终会出现该错误。

您可以通过在格式化程序中加载类来解决此问题 - 将格式化程序更改为以下内容:

if ( Class.forName("com.foo.Bar") != null ) {
  return com.foo.Bar.xzyToString( this );
}
else {
  return "Could not load com.foo.Bar in detail formatter!";
}

答案 2 :(得分:-1)

return声明之后给出部分。例如。 StringBuffer尝试:

toString() + " (" + length() + ")"