質問

このようなメソッド内のステートメントからフィールドタイプをプログラム的に取得するにはどうすればよいですか。

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() メソッドとメソッドオブジェクトを取り戻します
  • 電話してください getReturnType() メソッドオブジェクトのメソッド
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top