问题和标题一样简单。如何在Groovy中检查对象是列表,集合还是数组?但是找不到一种简单的检查方法。有任何想法吗?

最佳答案

我不知道您是否需要区分Collection,List和Array,还是只想知道对象是否为这些类型中的任何一种。如果是后者,则可以使用以下方法:

boolean isCollectionOrArray(object) {
    [Collection, Object[]].any { it.isAssignableFrom(object.getClass()) }
}

// some tests
assert isCollectionOrArray([])
assert isCollectionOrArray([] as Set)
assert isCollectionOrArray([].toArray())
assert !isCollectionOrArray("str")

在Groovy控制台中运行上面的代码,以确认其行为与广告宣传相同

07-28 01:20