2010-11-22 189 views

回答

18

當然,使用instanceof operator

if (x instanceof String) { 
    ... 
} 

if (x instanceof String[]) { 
    ... 
} 

等,這是不理想有做到這一點,你要知道...有你可以重新設計你的API來避免這個辦法嗎?

+2

爲什麼它不理想? – Konerak 2010-11-22 09:54:05

+3

由於面向對象的問題。在這種情況下,使用'instanceof'的實際情況相當於說「我的方法在所有情況下都可能返回String []'(因爲'String'總是可以放在'String [1]'中) ,但是因爲我不夠聰明,所以我最好能夠回報任何東西,讓你應付它。「 – Riduidel 2010-11-22 09:55:18

+1

更改API的最簡單方法是始終返回一個String [],而不是String 1的字符串[]。 – extraneon 2010-11-22 10:00:33

7

重寫方法總是返回String[],即使只有一個。

更好的是,讓它返回List<String>並使用Collections.singletonList()作爲單元件的情況。

相關問題