当前位置: 首页 > 面试题库 >

如何告诉ProGuard在不指定每个字段的情况下保留私有字段

晋俊贤
2023-03-14
问题内容

这是我的课:

package com.tools.app.holiday;

public class Holiday {

    private String name;

    private Calendar dateFrom = Calendar.getInstance();

    private Calendar dateTo = Calendar.getInstance();

    ...

我可以通过将以下内容放在ProGuard规则文件中来保留这些私有字段:

-keepclassmembers class com.tools.app.holiday.Holiday {
    private java.lang.String name;    
    private java.util.Calendar dateFrom;
    private java.util.Calendar dateTo;
}

但我不想不必单独指定每个字段。我怎样才能做到这一点?


问题答案:

根据ProGuard文档,通配符可<fields>匹配任何字段。因此应该是这样的:

-keepclassmembers class com.tools.app.holiday.Holiday {
    private <fields>;    
}

如果要在所有类中保留私有字段,请使用:

-keepclassmembers class * {
    private <fields>;    
}


 类似资料:
  • 问题内容: 我在AndroidStudio 1.2.1.1和Gradle 1.2.3中使用了ProGuard。 My Gradle的发布版本的配置如下: 我希望混淆类的私有字段。 到目前为止,这是我的proguard配置文件(经过多次尝试): 但是在从AndroidGuard 反编译后,我最终得到了: 我知道这种混淆的使用是有限的,但是我想由ProGuard重命名。怎么做? 这是refcard。

  • 我试图创建一个非常基本的客户端,使用jersey/jackson从restful接口获取json回复。这两方面我都没有什么经验。经过一些令人沮丧的审判 现在我希望我得到的响应是不可变的,只是为了尊重正确的编程实践。但是,我不想必须将@JsonIgnoreProperties注释添加到任何单个变量,那会变得令人沮丧。如果变量名与json字段匹配,难道没有更简单的方法告诉jackson填充所有变量,甚

  • 问题内容: 因此,我有两个表格学生(PK sID)和导师(PK pID)。这个查询 提供这个结果 我正在尝试以此顺序获取不同的导师ID的列表,因此我正在寻找要生成的SQL 如果仅在SELECT子句中插入DISTINCT,我将得到意外的结果10、9、3(错误的顺序)。任何帮助,不胜感激。 问题答案:

  • 我在我的Spring引导webapp中配置了一个FaignClient,在那里我调用一个返回以下对象的外部api。 字段、和都是蛇型的。所有多字字段显示为空。有没有办法配置佯装客户端的Jackson解析器,使其能够处理蛇形字符?请注意,我无法更改spring boot webapp的默认Jackson解析器,因为我自己以驼峰格式呈现json。我只需要在我用来连接外部RESTAPI的假客户端上配置这

  • 问题内容: 我正在处理备份脚本,并希望压缩文件目录: 这可以压缩它,但是当我解压生成的文件时,它包括完整的文件结构:这些文件位于中。 有没有一种方法可以排除父目录,从而使生成的tar只知道最后一个目录()? 问题答案: