Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何调试';详细信息格式化程序&x27;在eclipse中解析类?_Java_Eclipse_Debugging - Fatal编程技术网

Java 如何调试';详细信息格式化程序&x27;在eclipse中解析类?

Java 如何调试';详细信息格式化程序&x27;在eclipse中解析类?,java,eclipse,debugging,Java,Eclipse,Debugging,在eclipse中,您可以在Preferences->Java->Debug->Detail Formatters下设置自定义的“Detail Formatters”,以便在调试时以自定义方式打印对象。我想使用一个实用程序类来使用格式化程序打印对象,如: return com.foo.Bar.xzyToString(this); 其中xzyToString是一个返回字符串的静态Bar方法,但eclipse抱怨它 '无法解析类型:com.foo.Bar.xzyToString'。将“Bar”添加

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

return com.foo.Bar.xzyToString(this);
其中xzyToString是一个返回字符串的静态Bar方法,但eclipse抱怨它


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

只需在您的
return
语句后给出部分即可。例如,对于
StringBuffer
尝试:

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

细节格式化程序钩住EclipseJDI框架,并使用当前正在调试的类的类加载器。因此,您只能使用运行中的应用程序知道的类


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

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

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

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

即使结果不是空的,我还是得到了同样的错误。也许是奥斯基的错。