0

javaparser でジェネリック メソッドを解析できますか?? 可能であれば、どのように?たとえば、これは私の方法です:

public static < E > void printArray( E[] inputArray )
   {
      // Display array elements              
         for ( E element : inputArray ){        
            System.out.printf( "%s ", element );
         }
         System.out.println();
    }

MethodVisitor で解析し、MethodVisitor.getParameters().getType を使用すると、E[] が取得されますが、それがオブジェクトであることを取得する必要があります。可能ですか?

4

2 に答える 2

0

唯一の方法は、独自のパーサーを作成することです。JavaParser は BeginLine メソッドを返し、唯一の方法はこの行を解析することです。

public static < E > void printArray( E[] inputArray )

すべての修飾子 (public および static) を削除し、次の値が戻り値の型 (void) と等しくない場合、E が Object であることがわかります。

于 2014-12-07T17:21:28.530 に答える
0

私があなたの問題を正しく理解していれば、E は何も拡張しないため、オブジェクトである可能性があることを JavaParser に伝えてほしいと考えています。JavaParser は単なるパーサーであるため、これは実行できません。AST を構築しますが、シンボルの解決や型の分析などは行わないため、目的には使用できません。Eclipse JDT のようなものを試してみることをお勧めします (これは、Eclipse の外部でも使用できますが、多少の努力が必要です...)

免責事項: 私は JavaParser への貢献者です

于 2015-02-16T20:02:43.017 に答える