如何在Java中将vector <string>数组作为返回值?</string>

时间:2014-03-18 04:59:30

标签: java arrays vector

我想要一个方法将两个向量返回给调用函数。这是我试过的:

static Vector<String>[] method()
{
    Vector<String>[] toret = new Vector<String>[2]; // GETTING ERROR HERE
    for(...)
    {
         toret[0].add(...);
         toret[1].add(...);
    }
    return toret;
}

public static void main()
{
    Vector<String>[] obtained = method();
}

需要帮助才能删除该错误。

3 个答案:

答案 0 :(得分:2)

不要尝试创建泛型数组。请尝试返回List<Vector<String>>

static List<Vector<String>> method()
{
    List<Vector<String>> toret = new ArrayList<Vector<String>>();
    toRet.add(new Vector<String>());
    toRet.add(new Vector<String>());
    for(...)
    {
         toret.get(0).add(...);
         toret.get(1).add(...);
    }
    return toret;
}

我还建议使用List<String>(和List<List<String>>)而不是Vector<String>(以及List<Vector<String>>),除非你绝对需要其他地方的方法级同步Vector提供。

答案 1 :(得分:1)

你在这里做了两件错事:

  • 使用Vector代替List
  • 创建参数化类型数组。

You can't create an array of concrete parameterized types。你必须使用List<List<String>>而不是。

答案 2 :(得分:0)

代替Vector [] toret = new Vector [2];使用Vector toret = new Vector();

也像这样改变

public static void main() {     获得的矢量=方法(); }

你可以使用0&amp;操作的第一个索引。 矢量是一个动态数组。所以如果你想确保能力给予 矢量toret =新矢量(2)