我过去常常Bundle在如下界面中定义一组相关常量(如键):
public interface From{
String LOGIN_SCREEN = "LoginSCreen";
String NOTIFICATION = "Notification";
String WIDGET = "widget";
}
Run Code Online (Sandbox Code Playgroud)
这为我提供了一种更好的方法来将相关常量组合在一起并通过静态导入(而不是实现)来使用它们.我知道Android框架也使用常数在同样的方式一样Toast.LENTH_LONG,View.GONE.
但是,我经常觉得Java Enums提供更好,更强大的方式来表示常数.
但是,有没有在使用性能自动问题enums上Android?
通过一些研究,我最终陷入困惑.从Android的性能提示Google中删除了"避免使用只需要Ints的枚举"的问题
吗?显然已经从其性能提示中删除了"避免枚举",但是从它的官方培训文档中了解内存开销部分它清楚地说:"枚举通常需要的内存是静态常量的两倍多.你应该严格避免在Android上使用枚举."这仍然很好吗?(Java在1.6之后的版本中说)
我观察到的一个问题,更是发送enums跨intents使用Bundle我应该序列化给他们(即putSerializable(),我认为一个昂贵的操作比较原始的putString()方法沉绵enums提供它是免费的).
有人可以澄清哪一个是代表相同的最佳方式Android?我应该严格避免使用enums的Android?
将SDK更新到API级别23后,我发现onAttach (Activity activity)不推荐使用新方法onAttach (Context context).任何人都可以告诉我为什么要做出这种改变?
在阅读oracles Java文档(第8章)时,我遇到了这个有趣的部分:
" 如果两个或更多(不同的)类修饰符出现在类声明中,那么它们通常是按照与上面在ClassModifier的制作中所示的顺序一致的顺序出现,尽管不是必需的."
这是类修饰符
ClassModifiers:
ClassModifier
ClassModifiers ClassModifier
ClassModifier: one of
Annotation public protected private
abstract static final strictfp
Run Code Online (Sandbox Code Playgroud)
我的问题是多个类修饰符需要什么?什么时候我们可以使用多个类修饰符?