ProGuard可以制作子类'字段名称不同于超类'

时间:2018-04-04 23:59:05

标签: java proguard android-proguard

假设我有这些课程:

public class Superclass {
    private int intValue;
}

public class Subclass extends Superclass {
    private String stringValue;
}

ProGuard可能会将它们混淆为:

public class A {
    private int a;
}

public class B extends A {
    private String a;
}

我可以让B.a成为其超类中不存在的另一个名称,例如B.b?我的类将在序列化(JSON)中使用,存储在本地以便我不需要原始字段名称,只需要它们不同。

1 个答案:

答案 0 :(得分:0)

据我所知,你应该保留序列化中使用的类。 Processing serializable classes建议你写一些类似的东西:

 -keepclassmembers class * implements java.io.Serializable { 
 private static final java.io.ObjectStreamField[] serialPersistentFields; 
 private void writeObject(java.io.ObjectOutputStream); 
 private void readObject(java.io.ObjectInputStream); 
 java.lang.Object writeReplace(); 
 java.lang.Object readResolve(); 
}