一种方法返回Object
或Object[]
类型String
,但如果我使用String[]
进行投射,它在包含单个字符串时给出类转换异常。我该如何解决这个问题?如何在java中检查对象是字符串还是字符串数组?
有什么方法可以检查它是否包含String
或String[]
?
一种方法返回Object
或Object[]
类型String
,但如果我使用String[]
进行投射,它在包含单个字符串时给出类转换异常。我该如何解决这个问题?如何在java中检查对象是字符串还是字符串数组?
有什么方法可以检查它是否包含String
或String[]
?
当然,使用instanceof
operator:
if (x instanceof String) {
...
}
if (x instanceof String[]) {
...
}
等,这是不理想有做到这一点,你要知道...有你可以重新设计你的API来避免这个办法吗?
重写方法总是返回String[]
,即使只有一个。
更好的是,让它返回List<String>
并使用Collections.singletonList()
作为单元件的情况。
为什么它不理想? – Konerak 2010-11-22 09:54:05
由于面向对象的问题。在这种情况下,使用'instanceof'的实际情况相当于说“我的方法在所有情况下都可能返回String []'(因为'String'总是可以放在'String [1]'中) ,但是因为我不够聪明,所以我最好能够回报任何东西,让你应付它。“ – Riduidel 2010-11-22 09:55:18
更改API的最简单方法是始终返回一个String [],而不是String 1的字符串[]。 – extraneon 2010-11-22 10:00:33