2

com.opensymphony.xwork2.ActionSupportを拡張し、カスタムインターフェイスを実装するすべてのクラスを保持する必要があります。

これを試してみると

-keepnames public class * extends com.opensymphony.xwork2.ActionSupport implements com.company.project.utils.Constantes {
 *; 
 }

次のエラーが発生します:

'実装'で'{'を開くことを期待するエラー

4

1 に答える 1

3

メモリが機能する場合は、別のクラスを拡張するクラス、またはインターフェイスを実装するクラスを指定できますが、両方を指定することはできません。ドキュメントはこれを特に明確にしませんが、そこに暗示されています。

どちらか一方を指定するだけでは不十分であると仮定すると、これを回避する方法はいくつかあります。

  • 空の「マーカー」インターフェースを作成し、それを拡張したいクラスを作成します。
  • 保持する各クラスに静的(必要にprivate static final応じて)マーカーフィールドを追加し、-keepオプションで指定します。
  • 弾丸をかみ、保持したいすべてのクラスの名前をリストするだけです。

編集

別のオプションは、次のようなクラスを作成することです。

public abstract class Foo extends com.opensymphony.xwork2.ActionSupport implements com.company.project.utils.Constantes {
    // ...
}

次に、保持したいすべてのクラスにそのクラスを拡張させます。* extends Foo次に、-keepオプションで指定する必要があります。

于 2012-04-24T10:34:00.640 に答える