سؤال

كيف يمكنني الحصول على نوع الحقل برمجيًا من عبارة داخل طريقة مثل هذه:

Foo foo = getSomeFoo();

إذا كان الحقل ، يمكنني معرفة نوع العنصر.

هل كانت مفيدة؟

المحلول

تحتاج إلى استخدام AST Eclipse

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