次のようなメソッド内のステートメントからフィールドタイプをプログラムで取得するにはどうすればよいですか?
Foo foo = getSomeFoo();
フィールドであれば、要素の種類がわかります。
次のようなメソッド内のステートメントからフィールドタイプをプログラムで取得するにはどうすればよいですか?
Foo foo = getSomeFoo();
フィールドであれば、要素の種類がわかります。
Eclipse の AST を使用する必要があります
ICompilationUnit icu = ...
ASTParser parser = ASTParser.newParser(AST.JLS3);
parser.setResolveBindings(true);
parser.setSource(icu);
CompilationUnit cu = (CompilationUnit) parser.createAST(null);
cu.accept(new ASTVisitor() {
@Override
public boolean visit(VariableDeclarationStatement node) {
System.out.println("node=" + node);
System.out.println("node.getType()=" + node.getType());
return true;
}
});
foo
を呼び出すと、オブジェクトのクラスを取得できますfoo.getClass()
。
クラス (またはオブジェクト) があり、そのクラスの特定のメソッドの戻り値の型をプログラムで取得したい場合は、次のようにしてください。
Class
クラス/オブジェクトのオブジェクトを取得しますgetMethod()
Method オブジェクトを取得するgetReturnType()
Method オブジェクトでメソッドを呼び出す