Java 如何调试';详细信息格式化程序&x27;在eclipse中解析类?
在eclipse中,您可以在Preferences->Java->Debug->Detail Formatters下设置自定义的“Detail Formatters”,以便在调试时以自定义方式打印对象。我想使用一个实用程序类来使用格式化程序打印对象,如: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”添加
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!";
}
即使结果不是空的,我还是得到了同样的错误。也许是奥斯基的错。