作者TonyQ (骨頭)
站內java
標題Re: [問題] class變數存取問題
時間Wed Mar 15 21:52:21 2006
※ 引述《PsMonkey (痞子軍團團長)》之銘言:
: ※ 引述《TonyQ (骨頭)》之銘言:
: : 是啊 是這樣沒錯
: : 那我們的討論差不多就可以到這裡打個段落了吧XD
: 可是你沒有回答我關於這段的問題
你這段只有講到Comparator的用法
說的很正確啊 XD 那還有甚麼問題啊??
: //引言開始
: : Comparator主要是給容器用的吧 (也就是List)
: : 而Comparable應該是給被容納的東西去implement的吧 (也就是object)
: //引言結束
: 我覺得這樣子的觀念不對,所以才會寫上一篇文章
: 然後你回文章的時候就一路說 "對~ 就是這樣子" 然後就說結束討論
: 我覺得很 Orz 阿
我怎麼開始有一種雞同鴨講的感覺 -.-
我的意思,
以TreeSet的例子來講
Comparator給誰用的 給TreeSet去用的啊 (容器)
Comparable是誰去implement ? 是Object去implement (被容納的東西)
你有看過TreeSet implement comparable
或Object 建Comparator的嗎 XD
至少就API裡面好像沒有XD
可是TreeSet跟TreeMap倒是都有Comparator的建構子,
而常用的Object也幾乎都implements Comparable XD
: : ----------
: : //此時因為找不到compare,所以產生java.lang.ClassCastException:
: : -----------------------------------------------------------------
: : <解一>
: : 這是因為Person並沒有implement Comparable的關係,如果
: : Person也去implement Comparable就可以解決了。
: : 比方說在Person內加上類似這段程式碼這樣的東西就ok了
: 挑語病...
: 這邊應該要講:
: Person 去 implement Comparable 然後加上類似這段程式碼就 OK 了
: 不然,怎麼覺得兩句沒有直接關係
: : TreeSet Default的Comparator規則到底是甚麼啊
: : 可惡 剛剛翻半天文件 翻不到只好蠻力硬幹XD
: default? 就是物件本身的 Comparable 的 compareTo 阿...
: 不然怎麼會出現 ClassCastException?
那時候翻各物件的compareto 幾乎都只支援同型的比較XD
(比方說Integer的就只能跟 Integer的比較)
所以後來乾脆都用String去做比較 管它的~XD
現在想想
可能該先轉型成 Comprable再寫compareTo
沒實做不知道 XD
--
Local
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.138.240.58