我在 Java ME 环境中编写代码,因此速度绝对是一个重要因素。我读过几个地方,任何类型的反射(即使是 java ME 允许的非常有限的数量)都可能是一个非常大的瓶颈。
所以,我的问题是:执行 String.class.getName()
速度慢吗? myCustomObject.getClass().getName()
怎么样?简单地用字符串常量替换它们是否更好,例如“java.lang.String”和“com.company.MyObject”?
如果您想知道,我需要所有原语(以及非原语)的类名,因为 Java ME 不提供默认的序列化实现,因此我必须自己实现。我需要一个通用的序列化解决方案,它既适用于网络通信,也适用于本地存储(RMS,还有 JSR-75)
编辑
我正在使用 Java 1.3 CLDC。
最佳答案
String.class.getName()
不会很慢,因为它的值将在执行之前加载。即编译器将在行执行之前放置它的值。
myCustomObject.getClass().getName()
会比之前的慢,因为它会在执行时被检索
关于java - Object.class.getName() 慢吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11749760/