获取作为集合的对象的值

时间:2012-06-26 07:07:48

标签: java collections casting

我正在使用一个在调用时返回Object的方法。该对象的类型是java.util.Collections.unmodifiableSet。该集合只包含一个值,我需要访问并提供给另一个方法。问题是这样做:

Object o = table.getValue().toString();

返回[]中包含的值,因为它是一个Collection。需要使用Object类型参数调用另一个方法,该参数应该只是没有[]的值。我通过使用正则表达式删除方括号来完成工作,但是希望通过某种方式将集合转换为适当的类型。

2 个答案:

答案 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