私はカスタム注釈プロセッサを書いています。ジェネリック型ではなくクラス型を処理することはできますが、ジェネリック型では実際の型を取得できません。typeElementから実際の型を取得する方法は?
MyBaseインタフェース
interface MyBase<T, S> {
void method1(S, T);
}
例Class1の
public class KpA{
...
}
例クラス2
public class KpB{
...
}
ターゲット注釈クラス
@MyAnnotation
interface MyHandler extends MyBase<KpA, KpB>{
}
処理コードスニペット
TypeElement[] getActualTypes(ProcessingEnvironment pEnv, TypeElement element){
List<TypeElement> myBaseElement = element.getInterfaces().stream().map(v-> (TypeElement) pEnv.getTypeUtils().asElement(v)).collect(Collectors.toList());
myBaseElement.get(0).getTypeParameters().stream().forEach(System.out::println);
return null;
}
私はS and T
がどのように私はKpA and KpB
を得ることができるよう、私は出力を得るgetTypeParametersをSysout
。
この問題を解決するには、何か助けてください。
入力していただきありがとうございます。しかし、あなたの意見はもっと貴重でした。 –