2012-02-24 58 views
4

当CDC编程我一直在重新发明轮子,重新实现的东西像Arrays.toString(Object[])。这是为什么呢?无法CDC(和​​FP,PBP,等等)是SE的当前版本的一个子集,而不是基于一个旧的(我可以说过时了吗?)的Java版本?为什么CDC基于旧版本的Java,而不是当前SE的子集?

有可能是一个很好的理由,但我看不到它。

+0

这些谈论资源受限的设备新重新创建轮得到一个“UTIL”包在某个点进行分组,当然,但这里的关键并不在于代码的重复项目,明智的,关键是,为什么他们不能在已经CDC提供。 – JoaoHornburg 2012-02-24 12:43:02

回答

1

它们是 - CDC是定义时的JavaSE'当前'版本的子集。 (即CLDC1.0> JSR30>批准在1999年8月>基于JavaSE的1.3。)

CDC,CLDC,FP,PBP ......都是规范 - 时间凝固 - 它们不能被更新。 更新的规范将意味着启动一个新的(如CDC2.0) - 然后你将有一些设备兼容旧有的以新的。

除此之外,考虑的前提下“CDC是...高度为资源受限的设备,如消费电子产品和嵌入式设备优化设计” - 而我们在1999年

+0

CLDC不是SE的子集。当尝试使用MIDP时,更隐秘的事情之一是Integer被重新映射到Object而不是Number。还有一些令人讨厌的差异的例子会导致在SE上运行的代码中出现奇怪的行为。 – 2012-02-24 13:20:50

2

答案很简单,摩尔定律。

在其通常的表述中,表示为“生产经济的芯片上的晶体管数量大约每18个月增加一倍”。然而,从另一方面来看,也可以说如果“能力”(即晶体管的数量)保持固定,则成本可以随着时间推移而降低。

这是Java ME执行委员会采纳的观点,所以参考设备的功能不会比4年前更强大 - 但它们要便宜得多。这对于CDC试图发挥作用的空间很重要,但这确实意味着与SE子集所需的设备相比,设备通常功率不足。

CDC规范的重新定义标准正在进行中,以使其更接近SE。 Java 8,其模块化支持也将使这更容易。

最终,我们的目标是将ME集成到SE的一个子集,但是这还需要几个版本。

相关问题