web-dev-qa-db-fra.com

Comment dire à ProGuard de conserver les champs privés sans spécifier chaque champ

Voici ma classe:

package com.tools.app.holiday;

public class Holiday {  

    private String name;

    private Calendar dateFrom = Calendar.getInstance();

    private Calendar dateTo = Calendar.getInstance();

    ...

Je peux conserver ces champs privés en mettant les éléments suivants dans mon fichier de règles ProGuard:

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

Mais je préfère ne pas avoir à spécifier chaque champ individuellement. Comment puis-je faire ceci?

P.S. J'ai volé la plupart de cela à Proguard garder les membres de la classe parce que cette question était proche de ce que je demande.

30
cja

Selon documentation ProGuard le caractère générique <fields> correspond à n'importe quel champ. Ainsi, cela devrait être quelque chose comme:

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

Si vous souhaitez conserver les champs privés dans toutes les classes, utilisez:

-keepclassmembers class * {
    private <fields>;    
}
46
Idolon