代码之家  ›  专栏  ›  技术社区  ›  Jens

Java:将对象转换为数组类型

  •  20
  • Jens  · 技术社区  · 16 年前

    我正在使用返回“object”类型的纯对象的Web服务。debug清楚地显示了这个对象中有某种数组,所以我想知道如何将这个“对象”强制转换成一个数组(或类似的数组)?

    我尝试了以下方法:

    Collection<String> arr = (Collection<String>) values;
    Vector<String> arr = (Vector<String>) values;
    ArrayList<String> arr = (ArrayList<String>) values;
    

    但什么都没用。我总是会有一种不由自主的感觉。

    我做错什么了?

    编辑 :

    遗憾的是,我不得不删除指向显示Eclipse调试器输出的图像的链接,因为它不再可用。请不要奇怪为什么在答案中提到了一个不再存在的图像。

    2 回复  |  直到 9 年前
        1
  •  34
  •   mavrosxristoforos Dmitry Pavliv    9 年前

    你的 values 对象显然是 Object[] 包含一个 String[] 包含值。

    String[] stringValues = (String[])values[0];
    
        2
  •  18
  •   Jon Skeet    16 年前

    您得到的(根据调试图像)是一个包含字符串数组的对象数组。所以你需要这样的东西:

    Object[] objects = (Object[]) values;
    String[] strings = (String[]) objects[0];
    

    您还没有显示 values -如果这已经是 Object[] 那你就可以用 (String[])values[0] .

    当然,即使是演员 对象[ ] 你仍然可以用一句话来表达,但这很难看:

    String[] strings = (String[]) ((Object[])values)[0];