无法将java.lang.Object[]转换为java.lang.String[] public class Mass\u Reading { 公共静态void main(字符串args[])引发异常 { CSVReader reader=newcsvreader(newfilereader(“Test_Graphs.csv”); List myEntries=reader.readAll(); //系统输出打印LN(myEntries); myEntries=新阵列列表(myEntries); //系统输出打印LN(myEntries); Object[]data=myEntries.toArray(); System.out.println(数据[0]+“”); } }

无法将java.lang.Object[]转换为java.lang.String[] public class Mass\u Reading { 公共静态void main(字符串args[])引发异常 { CSVReader reader=newcsvreader(newfilereader(“Test_Graphs.csv”); List myEntries=reader.readAll(); //系统输出打印LN(myEntries); myEntries=新阵列列表(myEntries); //系统输出打印LN(myEntries); Object[]data=myEntries.toArray(); System.out.println(数据[0]+“”); } },java,string,Java,String,我试图在中读取一个.csv文件,并将数据转换为一种可行的数据类型。读入时,它以字符串对象列表开始。在上面的代码中,我试图将其转换为字符串数组。我的主要问题是将String对象转换成String文本。我不断收到错误,java.lang.Object[]无法转换为java.lang.String[]。上面的代码可以编译,但仍然没有达到我的目标。当它打印时,我仍然得到一个字符串对象。谢谢您的建议。使用以下代码: public class Mass_Reading { public static

我试图在中读取一个.csv文件,并将数据转换为一种可行的数据类型。读入时,它以字符串对象列表开始。在上面的代码中,我试图将其转换为字符串数组。我的主要问题是将String对象转换成String文本。我不断收到错误,java.lang.Object[]无法转换为java.lang.String[]。上面的代码可以编译,但仍然没有达到我的目标。当它打印时,我仍然得到一个字符串对象。谢谢您的建议。

使用以下代码:

public class Mass_Reading
{
   public static void main(String args[]) throws Exception
   {
     CSVReader reader = new CSVReader(new FileReader("Test_Graphs.csv"));

     List myEntries = reader.readAll();
     //System.out.println(myEntries);

     myEntries = new ArrayList<String>(myEntries);
     //System.out.println(myEntries);

     Object[] data = myEntries.toArray();
     System.out.println(data[0] + "");
     }
}
调用的方法,
myEntries.toArray()
始终返回一个
对象[]
,该对象不能转换为
字符串[]

但在上面的示例中,我调用了一个重载方法,在这个方法中,您可以将正确类型的数组作为参数传入。如果传入的数组大小足够,则
toArray()
方法将填充该数组

如果大小不够,它将创建一个正确类型的新数组(与传入的参数类型相同)

因此,您还可以编写:

String[] data = myEntries.toArray(new String[myEntries.size()]);

有些人喜欢这样做,但我不喜欢这样的事实,即这样会创建一个浪费的对象,尽管在实际应用程序中,这不会对性能造成影响。

您能粘贴stacktrace并确定代码中哪一行出现错误吗?我手头没有,但显然是在比Java 6更新的版本中,零阵列实际上更快。
String[] data = myEntries.toArray(new String[0]);