Object.class.getName()慢吗?

Rin*_*ing 4 java reflection serialization cldc java-me

我正在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.

Nir*_*ond 5

String.class.getName()将不会很慢,因为它的值将在执行之前加载.编译器将在行执行之前将其值放入. 之前myCustomObject.getClass().getName()慢一点,因为它会在执行时被检索

  • 在JME模拟器上验证,执行String.class.getName()的时间可以忽略不计 (2认同)