例外をスローするリフレクションを介してメソッドを呼び出しています。
ただし、スタックトレースを取得すると
StackTraceElement[] elements = Thread.currentThread().getStackTrace();
リフレクトされたメソッドまでのスタック トレース全体を取得できません。リフレクションを実装するメソッドまでのみスタック トレースを取得します。
反映されたクラスは、まったく別のプロジェクトにあります。
編集: コード スニペットの追加
プロジェクトA
Class ReflectionImpl {
public void callMethodsviaReflection{
try{
// Reflection code to call the method
}catch(InvocationTargetException iTE){
StringBuilder errorLogBuilder = new StringBuilder();
errorLogBuilder.append(ex.toString());
errorLogBuilder.append("\n");
StackTraceElement[] elements = Thread.currentThread().getStackTrace();
for (int i=0;i<elements.length;i++) {
errorLogBuilder.append((elements[i].toString()));
errorLogBuilder.append("\n");
}
System.out.println(errorLogBuilder.toString());
}
}
}
プロジェクト B --> Eclipse でプロジェクト A を参照
Class ReflectedClass{
List<String> nameList = null;
public void reflectedMethod(){
nameList.add("Hello");
}
}