如何在java中将字符串集合转换为字符串数组

6 java string collections

我想通过attributeNames这是collection of string一种方法setColumnNames,它接受string array.

public Map<String, String> getAttributes(String rowKey, Collection<String> attributeNames, String columnFamily) {

    try {

        SliceQuery<String, String, String> query = HFactory.createSliceQuery(keyspace, StringSerializer.get(), StringSerializer.get(), StringSerializer.get()).
                setKey(rowKey).setColumnFamily(columnFamily).setColumnNames(attributeNames);

    } catch (HectorException e) {
        LOG.error("Exception in CassandraHectorClient::getAttributes " +e+ ", RowKey = " +rowKey+ ", Attribute Names = " +attributeNames);
    }

    return null;
   }
Run Code Online (Sandbox Code Playgroud)

定义 setColumnNames

SliceQuery<K, N, V> setColumnNames(N... columnNames);
Run Code Online (Sandbox Code Playgroud)

我每次都得到这个例外 -

The method setColumnNames(String...) in the type SliceQuery<String,String,String> is not applicable for the arguments (Collection<String>)
Run Code Online (Sandbox Code Playgroud)

如何在Java中将字符串集合转换为字符串数组?任何的想法?

Ken*_*abz 10

来自Javadocs中的Collection:

<T> T[] toArray(T[] a)

返回包含此collection中所有元素的数组; 返回数组的运行时类型是指定数组的运行时类型.如果集合适合指定的数组,则返回其中.否则,将使用指定数组的运行时类型和此集合的大小分配新数组.

请注意,此方法接受与集合相同类型的数组; 但是,Java不允许您实例化通用数组,因此您需要解决它.有关详细信息,请参阅此问题.