JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Java SE 討論區  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友   
reply to postflat modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 Re:J2SE 1.5 的新特点 [Re:Duncan]
popcorny

Jakarta 2%

版主

發文: 752
積分: 20
於 2003-08-06 23:17 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
Duncan wrote:
怎麼在 compile-time 完成 type 的檢查?這只是 Java 語法上的擴充,亦或者是會變更 JVM spec 與 byte code format 來達成這個 feature?

依目前的 Collection hierarchy 的規格來說,取得內容物的 method signature 都是傳回 java.lang.Object,即使能在 compile-time 確定內容物的 type 為同一種,要使用取出的 reference 依然要經過 checkcast instruction 來確認 reference 的型態,否則不能當作參數謂給 singature 的參數不為 java.lang.Object 的 method,也不能執行 java.lang.Object 介面以外的操作。

如果所謂的 compile-time 完成 type 的檢查,只是在寫法上可以省略 type casting,以及在編譯期過濾放入容器的 element 種類,那麼這充其量是另一個 compiler sugar 罷了,在 run-time 效率上並不會改善。


我同意你說的run-time效率不會改善
但是compile-time type checking應該是沒問題的
因為compile-time就可以得知哪個parameterized type bind到哪個actual type
所以可以做到type-checking...
但這絕對不是因為效率 而是讓程式正確性更高...

但是我比較好奇的是..
bytecode真的不用改就可以享有generic的好處嘛??
有些資訊應該一定要放在byte code吧...??
譬如提供哪些parameterized type??
還是這些在bytecode level一律都是java.lang.Object這個type??
而primitve就透過auto boxing/unboxing
compiler只要判斷type就好..
這樣寫起來好像也蠻合理的
我講的正確嘛???

但是還是有一些資訊是要讓compiler知道的
例如
Vector<int> vec;
在bytecode沒有存放這個資訊的前提之下
compiler怎麼知道Vector此class有一個parameterized type?


popcorny edited on 2003-08-06 23:22
reply to postreply to post
話題樹型展開
人氣 標題 作者 字數 發文時間
16269 [精華] J2SE 1.5 的新特点 subbug 2433 2003-08-02 09:30
15092 Re:J2SE 1.5 的新特? piggy 311 2003-08-02 11:53
15261 Re:J2SE 1.5 的新特点 saijone 3765 2003-08-02 22:52
13838 Re:J2SE 1.5 的新特点 Duncan 689 2003-08-06 22:58
13692 Re:J2SE 1.5 的新特点 popcorny 1058 2003-08-06 23:17
13581 Re:J2SE 1.5 的新特点 tempo 667 2003-08-06 23:28
13586 Re:J2SE 1.5 的新特点 popcorny 675 2003-08-07 00:18
13776 Re:J2SE 1.5 的新特点 Duncan 1016 2003-08-07 00:35
14381 Re:J2SE 1.5 的新特点 popcorny 933 2003-08-07 00:57
13538 Re:J2SE 1.5 的新特点 Duncan 699 2003-08-07 08:59
13362 Re:J2SE 1.5 的新特点 tempo 387 2003-08-07 01:15
13565 Re:J2SE 1.5 的新特点 saijone 1722 2003-08-07 03:20
13330 Re:J2SE 1.5 的新特点 worookie 458 2003-08-07 05:56
13511 Re:J2SE 1.5 的新特点 Duncan 894 2003-08-07 09:06
13185 Re:J2SE 1.5 的新特点 worookie 149 2003-08-07 09:20
13462 Re:J2SE 1.5 的新特点 Duncan 194 2003-08-07 09:24
13200 Re:J2SE 1.5 的新特点 worookie 191 2003-08-07 09:34
13312 Re:J2SE 1.5 的新特点 saijone 660 2003-08-07 10:49
13494 Re:J2SE 1.5 的新特点 popcorny 267 2003-08-07 10:58
13185 Re:J2SE 1.5 的新特点 tempo 845 2003-08-07 11:27
13668 Re:J2SE 1.5 的新特点 Dream 1620 2003-10-05 01:56
13676 Re:J2SE 1.5 的新特点 Duncan 882 2003-08-07 00:21
13357 Re:J2SE 1.5 的新特点 tempo 434 2003-08-07 01:22
13251 Re:J2SE 1.5 的新特点 worookie 104 2003-08-07 02:04
13303 Re:J2SE 1.5 的新特点 popcorny 147 2003-08-07 11:02
13208 Re:J2SE 1.5 的新特点 tempo 157 2003-08-07 11:20
13102 Re:J2SE 1.5 的新特点 worookie 144 2003-08-07 14:04
13281 Re:J2SE 1.5 的新特点 worookie 169 2003-08-07 02:24
13341 Re:J2SE 1.5 的新特点 worookie 246 2003-08-07 01:29
13492 Re:J2SE 1.5 的新特点 popcorny 1947 2003-08-07 10:50
13269 Re:J2SE 1.5 的新特点 tempo 811 2003-08-07 11:19
14709 Re:J2SE 1.5 的新特点 saijone 764 2003-08-07 12:12
» JWorld@TW »  Java SE 討論區

reply to postflat modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8