我有一个应用程序,该应用程序在包结构的两个不同位置具有两个称为“服务”的类。日志记录将像这样输出文件和行号,例如:(Service.java:102)这将成为Eclipse中控制台输出中的可单击链接。通常,这些链接非常有用,因为您只需单击一下即可找到打印输出的确切位置。但是,现在我有两个Service.java文件,它们执行两种完全不同的操作,并且它们在包结构中的位置不同。我不能重命名任何一个。当我单击链接时,即使在编辑器中打开了正确的Java文件,它也会带我到错误的Java文件。
我到处搜寻,但是找不到答案。有没有办法告诉Eclipse首先要考虑哪个Java文件?还是一种告诉先看哪个包的方法?可以使这些可点击链接再次有用的东西吗?
我知道如何在控制台输出中打印可点击的类链接的三种方法。
第一种方式:
只需在括号内打印类名:System.out.println("(Service.java:42)");
这是一个简单的方法,如果您不使用不明确的类名,它将起作用。由于 Eclipse 控制台没有决定应打开哪个文件所需的信息,我猜它会打开第一次出现的情况。
第二种方式:
就你而言。我会通过 StackTraceElement打印类名来做到这一点。那样:
StackTraceElement element = new StackTraceElement(
"Service", // Class name
"myFunnyMethodName", // Method name
Service.class.getName()+".java", // Path to File
2); // line number
System.out.println(element);
Run Code Online (Sandbox Code Playgroud)
第三种方式:
如果您不想创建,StackTraceElement可以从当前线程中获取它。
例子:
System.out.println(Thread.currentThread().getStackTrace()[1]);
Run Code Online (Sandbox Code Playgroud)
编辑:
另一种选择是尝试Eclipse 的 Grep Console Plugin。您可以使用链接、颜色、弹出窗口等定义您自己的表达式...
| 归档时间: |
|
| 查看次数: |
344 次 |
| 最近记录: |