Re: [心得]將Java的Namespace轉換成.Net的
※ 引述《tomex (tomex_ou)》之銘言:
: 平心而論,.Net的Framework在佈局上比Java的JSDK直覺許多,例如java的轉型別寫法:
: int i = Integer.parseInt(string)
: String s = String.valueOf(int);
: 然後記誦8種不一樣的java資料型別轉換method名稱.. @@"
??
ToChar
ToByte
ToDecimal
???Conver class也很多型別轉換method呢:)
重點是在於primitive type非object
你也可以new Integer("3").toString();
因為每個Object都有toString method.
: 而.Net的型別都是繼承自object,而object本身就擁有ToString()等內建型別
: 因此只要把 int.ToString()即可轉換成字串,很直覺。
: 不過,我不會拿新架構跟舊體系來比較,因為本身並不公平,
: 然後在用類別轉換命名而言,.Net就提供一個統一的Convert物件,
: 專門來做型別轉換的工作.
: int i = Convert.ToInt32(string)
: string s = Convert.ToString(int)
: 現在JDK 1.5出來了,增加許多功能,但在物件合名的舖陳及統一上仍不重視
: 我想主要原因是為了要能相容舊式寫法,
: 例如foreach語法在jdk 1.5終於支援了,卻不內建在compiler裏頭,
: 而是另用一個類別來format模擬它。繞了一些不必要的路,
: 這就是java程式語言本身的歷史包袱。
這邊應該是說他把功能做在compiler等級 而非vm等級
外加不太懂您的意思
實際上的foreach code也只是變成
list.GetEnumerator();
然後透過
enumerator1.Current去做事
依我透過工具decompile的結果是如上
在java的foreach中則是使用Iterator罷了.
Java也有Enumeration
如:Vector.elements();
只是sun好像都使用Iterator
: .Net再怎麼貼心及創新,微軟仍堅守在win32平台,因此在跨平台上仍得用java
: 儘管在語法上較不直覺,但衝著「跨平台」三個字,忍了...
是為了與之前版本相容才"忍"了
跨平台只要每個os上的vm都實作的出來 那麼便不用擔心呀!!
如果整個VM可以翻新 從VM去支援 那麼以前的程式都得拿回來重新compile過才行
我想JAVA暫時應該不會這麼做 外加拖越久感覺就越難實施
如果真可以大刀闊斧 何必用compiler來支援generic
害我實在很羨慕C# user 用generic可以增進效率
在JAVA卻是..
: 最近,我對於物件的包裝及佈署有些心得,於是自己實作一個Java Bean,
: 儘量讓java在寫法上直覺一些,例如要執行sql,一行指令就行:
: obj.executeQuery(sql);
: 為何我不把method的名字也取像.Net Framework裏頭的命名呢?
: 因為method回傳的型別仍是不一樣,java就沒有DataTable那樣易用的物件
確實,沒有ADO.NET這麼好用整合好的API
用jdbc也是夠麻煩的 外加也只能用於資料庫
ADO.NET就通吃各種東西
: 而mthod的命名常常取決回傳的類別名稱,so...先保留,也方便我記憶轉換,
: 也避免我一直記起.Net的方便性。
: 我也另實作Java物件的統一命名,例如要轉換型別就用:
: obj.Convert.ToInt32(string)
: obj.Convert.ToString(int)
: 其實它只是呼叫java既有的method而己,
: sun不做這貼心事,我自己來。
: 我現在寫程式,境界上不僅僅只是要完成程式功能及專案,
: 甚至想重新創造語言本身的表達能力,
: 所以寫程式有沒有趣,其實看個人想做到什麼地步而己。
確實 我在專案中也喜歡利用其他程式的API
有時在寫C#看看他的原始碼 哪個API好用 改寫成JAVA的
反過來JAVA有的 C#找不到時 便從JAVA的class library抄
有時把API包的很general 可是非常爽的!!!
像我就偶爾看看有沒有新DP,修修改改自己使用來操作Hibernate Session
(.Net也有仿造的NHibernate,著名的O/R mapping工具)的API
方便自己日後使用
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.130.38.77
推
140.115.205.46 11/08, , 1F
140.115.205.46 11/08, 1F
討論串 (同標題文章)
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章