如何在java中检查对象是字符串还是字符串数组?
一个方法返回类型为如何在java中检查对象是字符串还是字符串数组?,java,Java,一个方法返回类型为String的Object或Object[],但如果我使用String[]强制转换,则当类包含单个字符串时,它会给出类强制转换异常。我如何解决这个问题 有没有办法检查它是否包含String或String[]?当然,请使用: 等等。提醒你,这样做并不理想。。。有什么方法可以重新设计API来避免这种情况吗?重写该方法以始终返回字符串[],即使只有一个字符串 更好的是,让它返回列表并用于单个元素的情况。由于面向对象的考虑。在本例中,使用instanceof的事实相当于说“我的方法在所
String
的Object
或Object[]
,但如果我使用String[]
强制转换,则当类包含单个字符串时,它会给出类强制转换异常。我如何解决这个问题
有没有办法检查它是否包含String
或String[]
?当然,请使用:
等等。提醒你,这样做并不理想。。。有什么方法可以重新设计API来避免这种情况吗?重写该方法以始终返回
字符串[]
,即使只有一个字符串
更好的是,让它返回
列表
并用于单个元素的情况。由于面向对象的考虑。在本例中,使用instanceof
的事实相当于说“我的方法在所有情况下都可以返回字符串[]
(因为字符串总是可以放在字符串[1]
),但由于我不够聪明,所以我更愿意返回任何东西,让您处理它。”更改API的最简单方法是始终返回字符串[],而不是大小为1的字符串[]。
if (x instanceof String) {
...
}
if (x instanceof String[]) {
...
}