我必須接管並完善/完成一些將Java對象從第三方庫轉換爲內部對象的代碼。目前,這是通過一個大的if-else語句的線沿線的完成:在Java中做對象轉換的簡單/優雅的方法?
if (obj instanceOf X)
{
//code to initialize internal object
}
else if (obj instanceOf Y)
{
//code to initialize different object
}
else if (obj instanceOf Z)
{
//more init code
}
...
個人而言,我不覺得這是解決方案令人滿意;它很漫長而且讓事情變得更糟,許多if-else塊包含更多的處理子類和邊界情況的if-else塊。有沒有更好的解決這個問題?
可能,但沒有更多關於您獲得的對象的信息以及您基於它們執行的初始化類型,很難說 - 這是「依賴於」的答案之一。 – Rob 2009-01-07 19:47:19