今天遇到个问题,有一句代码执行了两遍,按照逻辑是不应该的,本应该只执行一遍(在当时的特定case下),因为调用的地方太多了,所以也不知道怎么一个一个的排查,最后同事大神给介绍了个好方法,这里记录一下:
@Override
public void startSpeak(String text) throws RemoteException {
if (KitConfigManager.getDefaultConfiguration().isPlayTts()) {
if ("好的,有时间再找我玩耍".equals(text)) {// 因为这句话播放了两边所以这里这样写
StackTraceElement[] trace = Thread.currentThread().getStackTrace();
for (StackTraceElement e : trace) {
System.err.println("----------" + e.toString());
}
}
verbal.startSpeak(text);
}
}
StackTraceElement[] trace = Thread.currentThread().getStackTrace();
for (StackTraceElement e : trace) {
System.err.println("----------" + e.toString());
}
上面方法就可以打印出执行了这个方法的线程情况