我需要保留所有扩展 com.opensymphony.xwork2.ActionSupport 并实现自定义接口的类。
当我尝试这个
-keepnames public class * extends com.opensymphony.xwork2.ActionSupport implements com.company.project.utils.Constantes {
*;
}
我收到以下错误:
期望在“实现”处打开“{”时出错
如果有记忆,您可以指定扩展另一个类的类或实现接口的类,但不能同时指定两者。该文档并没有特别清楚地说明这一点,但它暗示在那里。
有几种方法可以解决这个问题,假设您仅指定一个或另一个是不够的:
private static final
为您要保留的每个类添加一个静态(如果您愿意,可以是)标记字段,并在 -keep 选项中指定。编辑
另一种选择是创建一个这样的类:
public abstract class Foo extends com.opensymphony.xwork2.ActionSupport implements com.company.project.utils.Constantes {
// ...
}
然后,让所有要保留的类扩展该类。然后你只需要* extends Foo
在 -keep 选项中指定。