作者TonyQ (骨頭)
看板java
標題Re: [問題] class變數存取問題
時間Wed Mar 15 09:38:21 2006
※ 引述《KiroKu (kyo)》之銘言:
: ※ 引述《PsMonkey (痞子軍團團長)》之銘言:
: 打錯了....variable吧...orz
: : 請參考 tkcn 的大作
: : http://pt2wiki.twbbs.org/Wiki.jsp?page=Modifier
: 你的意思是叫我用繼承的關係去存嗎?
: 可是我兩個class間並無這種關係
: 我要做的是一個list跟他的資料項
: (網站掛一下CSS吧?)
這裡的是哪一種list
講list會想到collection的那個list...
還有表單的那個list....
不過個人揣測它的意思應該是設成同一個package。XD
不然就是把資料項直接納到list內部當data member去
這應該是比較常見的用法吧
(總覺得你原文的public感覺應該是在說static...orz)
: : 先說,JDK 5.0 的語法我沒研究過
: : 不過根據看板上的文章,Java 應該是沒有提供 operator override
: : 如果以 1.4 來說
: : 你可以將 XXXX implements Comparable
: : 然後改成判斷 a.compareTo(b) == 1
: : 最後,寫 Java,請用 Java 的思維
: 那應該是T要去定義compareTo吧??而且也不能保證每種T都適用
下次請先把需求講清楚,不要浪費大家時間去
猜測你要的東西,XD
所以你的需求是要每種T都適用的operator?
簡單來說,像PsMonkey講的,Java沒辦法overriding operator,
你前文提到要比較a跟b,A跟B本來就是T,所以當然是從t下手。
(你也得先知道要比對T的甚麼條件才能 overriding operator吧??:P)
不然就用comparable的東西了,
目前Comparable的Implementing Classes: (from
http://0rz.net/85189 )
Authenticator.RequestorType,
BigDecimal, BigInteger, Boolean, Byte,
ByteBuffer, Calendar,
Character, CharBuffer, Charset, CollationKey,
CompositeName, CompoundName, Date, Date,
Double, DoubleBuffer,
ElementType,
Enum, File,
Float, FloatBuffer, Formatter.BigDecimalLayoutForm,
FormSubmitEvent.MethodType, GregorianCalendar, IntBuffer,
Integer,
JTable.PrintMode, KeyRep.Type, LdapName,
Long, LongBuffer,
MappedByteBuffer,
MemoryType, ObjectStreamField, Proxy.Type, Rdn, RetentionPolicy,
RoundingMode,
Short, ShortBuffer, SSLEngineResult.HandshakeStatus,
SSLEngineResult.Status,
String, Thread.State, Time, Timestamp,
TimeUnit, URI, UUID
如果是要比較通用的t,
又要達到這個目的,上面有列出來的東西是都可以做得到,
至於T,可以限制輸入的東西,這是一種作法。
只讓使用者輸入有定義的資料型別,有時候這樣的需求就夠了。
(直接在method parameter的地方就用comparable當instant)
另外一種作法是,給非comparable的class一個通用的標準,
比方說照著hashcode去排序,或照著list先後放入的順序去排序等等。
如果使用者有非comparable物件的需求,
再讓他們自己去overriding那個method或comparator。XD
看你是想要自己寫method,還是寫Comparator(
http://0rz.net/db05D ),
都ok,個人是比較偏好用Comparator。
(記得Java現行的 TreeMap 跟 TreeSet好像都是這一類的,
提供一個建構子有Comparator可供使用者自行撰寫,然後在作排序。:P)
: 我本來是學C++的
: 老師上課都在上API= =...
API學的好會很省力是真的........:P
只是Java把很多model的概念也混入API,
有時候用起來讓人覺得很隱晦不明。特別是GUI......
--
這篇寫的有點長,
如果有甚麼地方有疏失或待改進或看不懂的地方,可以再提出來討論。:)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.138.240.58