2010-11-22 182 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()作为单元件的情况。

相关问题