在 CDC 中编程时,我总是在重新发明轮子,重新实现Arrays.toString(Object[])
. 为什么会这样?CDC(和 FP、PBP 等)不能成为当前 SE 版本的子集,而不是基于 Java 的旧(我可以说是过时的吗?)版本?
这可能有一个很好的理由,但我看不到它。
答案很简单,摩尔定律。
在其通常的表述中,它表示为“经济生产芯片上的晶体管数量大约每 18 个月翻一番”。
然而,换个角度来看,它也可以说,如果“能力”(即晶体管的数量)保持不变,那么成本可以随着时间的推移而降低。
这是 Java ME 执行委员会的观点,因此参考设备并不比 4 年前或更多年前更强大 - 但它们要便宜得多。这对 CDC 试图涉足的领域很重要,但这确实意味着与 SE 子集所需的设备相比,设备通常功率不足。
CDC 规范的重新基线正在进行中,以使其更接近 SE。Java 8 及其模块化支持也将使这更容易。
最终目标是将 ME 融合到 SE 的一个子集,但这还需要几个版本。
它们是 - CDC 是定义时 JavaSE 的“当前”版本的子集。(即 CLDC1.0 > JSR30 > 1999 年 8 月批准 > 基于 JavaSE 1.3)
CDC、CLDC、FP、PBP ......都是规范 - 及时冻结 - 它们无法更新。更新规范将意味着启动一个新规范(例如 CDC2.0) - 然后您将拥有一些与旧规范兼容的设备和一些与新规范兼容的设备。
除此之外,考虑前提“CDC ……针对资源受限的设备(例如消费产品和嵌入式设备)进行了高度优化”——我们谈论的是 1999 年的资源受限设备。