0

メソッドのパラメーター名を取得するために paranamer.jar を使用しています。ただし、パラメーター名は取得されません。

    Class c = Class.forName("com.soa1.MyClass");
    Class[] argTypes = { java.lang.String.class };
    Method method=ABC.class.getMethod("getData",argTypes);
Paranamer paranamer = new CachingParanamer();
    String[] parameterNames = paranamer.lookupParameterNames(method,false);
4

3 に答える 3

3

パラメータ名はどこかから来ましたか? ParaNamer のドキュメントによると、パラメーター名を取得するためにいくつかの方法を使用します。

  1. フィールド経由__PARANAMER_DATA。明らかに、これはクラスにそのようなフィールドがある場合にのみ機能します。
  2. .classファイルのデバッグ情報を介して。明らかに、これはクラスがデバッグ情報でコンパイルされた場合にのみ機能します。
  3. @Named注釈を介して。明らかに、これはメソッド パラメータにそのような注釈が含まれている場合にのみ機能します。

これらのいずれもクラスに適用されない場合は、申し訳ありませんが、パラメーター名は使用できません。

于 2013-06-20T01:43:21.340 に答える
0

コンパイル時にデバッグ情報を保持する

Eclipse でコンパイルしている場合は、project-properties-java コンパイラでデバッグ情報を保持するオプションをチェックしてください

javac add -g オプションでコンパイルしている場合

コードで Paranamer paranamer = new AdaptiveParanamer(); を使用します。

于 2013-12-29T10:17:42.537 に答える