我使用 final
类作为我的 static final
变量的常量持有者。我已经创建了我的 final
类,如下所示。
public final class ColorShape {
public static final int CIRCLE = 1, SQUARE = 2;
}
所以这应该用作常量,并在代码编译成 android apk 或 java jar 后删除。
这几乎是对的一半,因为在我将它编译成 android apk 之后类仍然存在。
这是我反编译android apk后看到的
public final class ColorShape {
}
编辑:我还尝试使用关键字 abstract 而不是 final,结果与以
结尾的结果相同public abstract class ColorShape {
}
我的 final ints
消失了,但类没有消失,是否有原因导致这种情况发生或我如何防止这种情况发生?我也想摆脱这门课。
最佳答案
我认为它已被 ProGuard 删除。
引自 https://developer.android.com/studio/build/shrink-code :
Code shrinking is available with ProGuard, which detects and removes unused classes, fields, methods, and attributes from your packaged app,...
关于用作常量的 Java final 类在编译后保留,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53854818/