我正在使用一个在调用时返回Object的方法。该对象的类型是java.util.Collections.unmodifiableSet。该集合只包含一个值,我需要访问并提供给另一个方法。问题是这样做:
Object o = table.getValue().toString();
返回[]中包含的值,因为它是一个Collection。需要使用Object类型参数调用另一个方法,该参数应该只是没有[]的值。我通过使用正则表达式删除方括号来完成工作,但是希望通过某种方式将集合转换为适当的类型。
答案 0 :(得分:1)
您可以使用迭代器:
String result = ((Collection) table.getValue()).iterator().next().toString();
将返回集合迭代器的第一个值。 (假设,table.getValue()
返回集合)
答案 1 :(得分:0)
如果您知道此集合只包含一个值,您可以这样做:
String result = null;
Collection collection = (Collection)table.getValue();
for(Object o : collection) {
result = o.toString();
break;
}
如果该集合不能包含多个值,您可以在break
之后移除result = o.toString();
希望有所帮助。
编辑:已修改,现在从表中检索集合。添加了强制转换为Collection并添加了break