相关疑难解决方法(0)

枚举和常量.哪个用的?

我正在对枚举进行一些阅读,发现它们与声明常量非常相似.我怎么知道何时使用常量而不是枚举,反之亦然.使用枚举有哪些优点?

c# language-agnostic enums

91
推荐指数
5
解决办法
6万
查看次数

我应该严格避免在Android上使用枚举吗?

我过去常常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提供更好,更强大的方式来表示常数.

但是,有没有在使用性能自动问题enumsAndroid

通过一些研究,我最终陷入困惑.从Android的性能提示Google中删除了"避免使用只需要Ints的枚举"的问题 吗?显然已经从其性能提示中删除了"避免枚举",但是从它的官方培训文档中了解内存开销部分它清楚地说:"枚举通常需要的内存是静态常量的两倍多.你应该严格避免在Android上使用枚举."这仍然很好吗?(Java在1.6之后的版本中说)

我观察到的一个问题,更是发送enumsintents使用Bundle我应该序列化给他们(即putSerializable(),我认为一个昂贵的操作比较原始的putString()方法沉绵enums提供它是免费的).

有人可以澄清哪一个是代表相同的最佳方式Android?我应该严格避免使用enumsAndroid

java enums android

90
推荐指数
5
解决办法
4万
查看次数

什么时候优化过早?

正如Knuth所说,

我们应该忘记小的效率,大约97%的时间说:过早的优化是所有邪恶的根源.

这是Stack Overflow常常出现的问题,例如"哪个是最有效的循环机制","SQL优化技术?"等问题.(等等).这些优化提示问题的标准答案是分析您的代码并首先查看它是否是一个问题,如果不是,那么您的新技术就不再需要了.

我的问题是,如果某种技术不同但不是特别模糊或混淆,那真的可以被认为是过早的优化吗?

这是Randall Hyde的一篇名为"过早优化的谬误"的相关文章.

optimization premature-optimization

79
推荐指数
10
解决办法
1万
查看次数