[問題] Generic types casting
我在實作 Observer 時
void update( Observable o, Object arg ) {
if( arg instanceof Vector<?> ) {
Vector< File > paths = (Vector< File >) arg;
}
}
然後就出現 warning
問題是我找不到除了 annotation 以外比較好看的解法
因為 Generic 的資訊在 runtime 就不存在了
(它好像不是在 JVM 上實作的...如果我對它的理解沒錯的話)
想到的一個解法是"窮人的typedef"
就是 class VectorFile extends Vector<File> {}
然後用 VectorFile 去 cast, 不過....這有點囧
請問有其他的方法可以用嗎?
題外話: 我一直覺得 Java 的 generic 用起來有點....彆扭
no offence.
--
自High筆記(半荒廢)
http://legnaleurc.blogspot.com/
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 211.74.131.25
推
07/19 14:41, , 1F
07/19 14:41, 1F
→
07/19 14:43, , 2F
07/19 14:43, 2F
推
07/20 05:39, , 3F
07/20 05:39, 3F
→
07/20 08:58, , 4F
07/20 08:58, 4F
推
07/20 09:02, , 5F
07/20 09:02, 5F
→
07/20 09:03, , 6F
07/20 09:03, 6F
→
07/20 09:36, , 7F
07/20 09:36, 7F
→
07/20 10:05, , 8F
07/20 10:05, 8F
→
07/20 10:07, , 9F
07/20 10:07, 9F
java 近期熱門文章
3
14
PTT數位生活區 即時熱門文章