【问题标题】:java List of Strings to Array of Strings [duplicate]java字符串列表到字符串数组[重复]
【发布时间】:2013-09-15 08:22:59
【问题描述】:

我想知道是否可以将 Strings 的 Java List 转换为 Strings 的数组:

我试过了:

List<String> products = new ArrayList<String>();
//some codes..
String[] arrayCategories = (String[]) products.toArray();

但它给了我一个异常消息:

java.lang.ClassCastException:java.lang.Object[] 无法转换为 java.lang.String[]

【问题讨论】:

  • @LalitPoptani 我发现的副本更好:D
  • 重复是重复更好或更坏:P
  • 这里的问题不是数组转换,而是在 new ArrayList[String]() 上错误使用 [] 应该是 new ArrayList().. 我正要回答但你们关闭了这个..
  • 嗯。既然我的编辑是错误的,那就更正了。愿它保持关闭。

标签: java android list arraylist classcastexception


【解决方案1】:
String[] array = products.toArray(new String[products.size()]);

【讨论】:

  • 它给了我同样的例外
  • @MouadELFakir,那么您可能做错了什么。发布您的代码以检查您在搞砸什么
  • 是的,谢谢我刚刚弄清楚我是什么,我只是忘记填写我的产品列表,我让它空了,它现在工作得很好,谢谢你;)
  • @MouadELFakir,如果此答案适合您,您可以将其标记为答案
【解决方案2】:

使用

String[] arrayCategories = products.toArray(new String[products.size()]);

products.toArray() 会将列表值放入Object[] 数组中,就像您不能将超类型的对象转换为其派生类型一样

//B extands A
B b = new A();

您无法将 Object[] 数组存储或转换为 String[] 数组,因此您需要传递您想要返回的确切类型的数组。

其他信息here

【讨论】:

    【解决方案3】:

    试试

    List<String> products = new ArrayList<String>();
            String[] arrayCategories = products.toArray(new String[products.size()]);
    

    【讨论】:

      【解决方案4】:

      这应该可以解决问题。第一行有错别字。

      List<String> products = new ArrayList<>();
      String[] array = (String[]) products.toArray();
      

      【讨论】:

        猜你喜欢
        • 2013-08-04
        • 1970-01-01
        • 2019-05-24
        • 1970-01-01
        • 2018-05-01
        • 1970-01-01
        • 2015-09-11
        • 1970-01-01
        • 2016-11-15
        相关资源
        最近更新 更多