[問題] 轉型的問題
S是從透過網路傳輸後取得的物件 (ObjectStream還原後得到的)
固定為十幾種已知型別
用途是負責擔任Client跟Server間的溝通
而且型別種類還在繼續增加當中
我現在想讓程式依照不同物件做出對應動作
遇到這種狀況
很自然的想到以前用的花招.....
但是這種功能被java沒收了
/*前略 */
public static void test(test01 a) {
System.out.println("收到test01,執行相對應動作");
}
public static void test(test02 b) {
System.out.println("收到test02,執行相對應動作");
}
public static void test(test03 c) {
System.out.println("收到test02,執行相對應動作");
}
/*中略*/
Object S;
while(true) {
if ((S == SL.GetNext()) != null) {
System.out.println("沒有取得值 T口T");
else {
ServerTest.test(S); //這招在JAVA中失效.. 編譯器叫我轉型..
}
}
/*後略*/
我想請問....
在JAVA中有比較簡潔、容易維護的寫法嗎?
雖然還是有辦法解決
可是下面幾種解決方式,用起來比較不是這麼方便、易增、刪、改
if (... instanceof ...) {
...
} else (... instanceof ...){
...
}
Map<Class,ObjectOfDoingSomeThing>
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.140.91.33
※ 編輯: LaPass 來自: 220.140.91.33 (08/17 03:11)
→
08/17 03:37, , 1F
08/17 03:37, 1F
推
08/17 07:58, , 2F
08/17 07:58, 2F
→
08/17 10:01, , 3F
08/17 10:01, 3F
→
08/17 10:03, , 4F
08/17 10:03, 4F
→
08/17 10:23, , 5F
08/17 10:23, 5F
→
08/17 13:23, , 6F
08/17 13:23, 6F
→
08/17 13:25, , 7F
08/17 13:25, 7F
推
08/17 13:50, , 8F
08/17 13:50, 8F
→
08/17 13:58, , 9F
08/17 13:58, 9F
推
08/17 14:03, , 10F
08/17 14:03, 10F
→
08/17 14:18, , 11F
08/17 14:18, 11F
→
08/17 14:42, , 12F
08/17 14:42, 12F
推
08/17 14:48, , 13F
08/17 14:48, 13F
→
08/17 22:14, , 14F
08/17 22:14, 14F
→
08/18 12:46, , 15F
08/18 12:46, 15F
→
08/18 21:47, , 16F
08/18 21:47, 16F
→
08/22 00:27, , 17F
08/22 00:27, 17F
討論串 (同標題文章)