2012-02-24 63 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的一個子集,但是這還需要幾個版本。

相關問題