java中调用_如何获取Java中的调用方类
小編典典
你可以生成堆棧跟蹤并使用StackTraceElements中的信息。
例如,實用程序類可以為你返回調用類名稱:
public class KDebug {
public static String getCallerClassName() {
StackTraceElement[] stElements = Thread.currentThread().getStackTrace();
for (int i=1; i
StackTraceElement ste = stElements[i];
if (!ste.getClassName().equals(KDebug.class.getName()) && ste.getClassName().indexOf("java.lang.Thread")!=0) {
return ste.getClassName();
}
}
return null;
}
}
如果你調用KDebug.getCallerClassName()從bar(),你會得到"foo"。
現在假設你想知道方法調用的類bar(這會更有趣,也許你真正想要的是)。你可以使用以下方法:
public static String getCallerCallerClassName() {
StackTraceElement[] stElements = Thread.currentThread().getStackTrace();
String callerClassName = null;
for (int i=1; i
StackTraceElement ste = stElements[i];
if (!ste.getClassName().equals(KDebug.class.getName())&& ste.getClassName().indexOf("java.lang.Thread")!=0) {
if (callerClassName==null) {
callerClassName = ste.getClassName();
} else if (!callerClassName.equals(ste.getClassName())) {
return ste.getClassName();
}
}
}
return null;
}
這是用于調試嗎?如果沒有,可能有一個更好的解決方案。
2020-03-22
總結
以上是生活随笔為你收集整理的java中调用_如何获取Java中的调用方类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 学习java的步骤_java学习的基本步
- 下一篇: java美元兑换,(Java实现) 美元