Получение типа поля в методе в eclipse - PullRequest
3 голосов
/ 15 октября 2010

Как программно получить тип поля из оператора внутри метода, подобного следующему:

Foo foo = getSomeFoo();

Если это поле, я могу знать тип элемента.

Ответы [ 2 ]

3 голосов
/ 15 октября 2010

Вам нужно использовать Eclipse's 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;
    }
});
0 голосов
/ 15 октября 2010

Вы можете получить класс объекта foo, вызвав foo.getClass().

Если у вас есть класс (или объект) и вы хотите программно получить тип возвращаемого значения для определенного метода в этом классе, попробуйте следующее:

  • Получить объект Class для класса / объекта
  • Вызвать метод getMethod() и получить объект Method обратно
  • Вызвать метод getReturnType() для объекта Method
...