通常开发使用的时候,一个方法被n个对象调用,想找具体被哪个对象调用很苦恼,可以通过StackTraceElement获取到每一层的调用者具体信息,这样就很容易找到是哪个对象被调用了。
StackTraceElement elements[] = Thread.currentThread().getStackTrace();
for (int i = 0; i < elements.length; i++) {
StackTraceElement stackTraceElement=elements[i];
String className=stackTraceElement.getClassName();
String methodName=stackTraceElement.getMethodName();
String fileName=stackTraceElement.getFileName();
int lineNumber=stackTraceElement.getLineNumber();
Log.e("czw", "StackTraceElement数组下标 i="+i+",fileName="+fileName+",className="+className+",methodName="+methodName+",lineNumber="+lineNumber);
}