[英]Can ProGuard make subclass' field name differ to superclass'
Suppose I have these classes: 假设我有这些课程:
public class Superclass {
private int intValue;
}
public class Subclass extends Superclass {
private String stringValue;
}
ProGuard may obfuscate them to be: ProGuard可能会将它们混淆为:
public class A {
private int a;
}
public class B extends A {
private String a;
}
Can I make Ba
become another name not exists in its superclass, eg Bb
? 我可以使
Ba
成为其超类中不存在的另一个名称,例如Bb
吗? My classes are about to be used in serialization (JSON), stored locally so that I don't need the original field name, just need them to be different. 我的类将用于本地化的序列化(JSON)中,因此我不需要原始的字段名称,只需要它们不同即可。
As far as I know, you should keep the classes used in serialization. 据我所知,您应该保留用于序列化的类。 Processing serializable classes suggests that you should write something like:
处理可序列化的类建议您编写以下内容:
-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();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.