java.lang.ClassCastException:[Ljava.lang.Object;与[Ljava.lang.String;不兼容;

时间:2013-06-19 21:30:46

标签: java classcastexception

我正在尝试从linkedhashset中检索随机元素。下面是我的代码,但它每次都给我例外。

private static void generateRandomUserId(Set<String> userIdsSet) {

    Random rand = new Random(System.currentTimeMillis());
    String[] setArray = (String[]) userIdsSet.toArray();
    for (int i = 0; i < 10; ++i) {
        System.out.println(setArray[rand.nextInt(userIdsSet.size())]);
    }
}

以下是我得到的例外情况 -

java.lang.ClassCastException: [Ljava.lang.Object; incompatible with [Ljava.lang.String;

任何人都可以帮我这个吗?有没有更好的方法呢?

1 个答案:

答案 0 :(得分:11)

试试这个:

String[] setArray = userIdsSet.toArray(new String[userIdsSet.size()]);

toArray method that takes no arguments会返回无法投放到Object[]的{​​{1}}。 other version返回一个类型化数组。