假设我有这样的场景
C:\Users\Name\Documents\Workspace\Project\Src\Com\Name\Foo.java
Public class Foo {
public Foo() {
Bar b = new Bar();
b.method();
}
}
然后假设 Bar 类位于用作库的 .JAR 文件中,是否可以找出调用 method() 的类来自何处? (在本例中为 Foo 类)
我在 Google 上查了一下,但找不到任何东西,而这段代码肯定会大大简化我的库。
最佳答案
如果您需要从方法 Bar#method 内部获取调用者类文件的路径,那么您可以使用如下内容:
StackTraceElement[] stackTrace = new Throwable().getStackTrace();
String callerFilePath = getClass().getClassLoader().getResource(stackTrace[1].getClassName().replace('.', '/') + ".class"));
关于java - 可以获取调用Java中方法的类的文件路径吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26674037/