2016-02-03 118 views
2
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] + ""); 
    } 
} 

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

+0

您可以粘贴堆栈跟踪并确定代码中出现错误的行吗? – Brooks

回答

5

使用此代码:你打电话,myEntries.toArray()

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

的方法,总是返回Object[],不能转换为String[]

但是我在上面的例子中调用了一个重载的方法,在这个方法中你可以传入正确类型的数组作为参数。如果尺寸足够,toArray()方法将填充传入的数组。

如果它具有足够的尺寸不是,它会创建正确类型的新阵列(同一类型作为参数,你传入)

正因为如此,你还可以这样写:

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

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

+1

我没有它,但显然在比Java 6更新的版本中,零数组实际上更快。 – chrylis

相关问题