簡體   English   中英

java.lang.Object []無法轉換為java.lang.String []

[英]java.lang.Object[] cannot be converted to 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] + "");
     }
}

我正在嘗試讀取.csv文件,並將數據轉換為可行的數據類型。 當讀入時,它作為字符串對象列表開始。 在上面的代碼中,我試圖將其添加到字符串數組中。 我的主要困擾是將String對象轉換為String Literal。 我不斷收到錯誤java.lang.Object []無法轉換為java.lang.String []。 上面的代碼可以編譯,但仍達不到我的目標。 當它打印時,我仍然得到一個字符串對象。 感謝您的任何建議。

使用此代碼:

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

您調用的方法myEntries.toArray()始終返回Object[] ,而該Object[]不能轉換為String[]

但是在上面的示例中有一個重載的方法,您可以在其中傳遞正確類型的數組作為參數。 然后,如果toArray()方法的大小足夠大,它將填充它。

如果沒有足夠的大小,它將創建一個正確類型的新數組(與您傳入的參數類型相同)

因此,您還可以編寫:

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

有些人喜歡這樣做,但是我不喜歡這樣一個事實,即會創建一個浪費的對象,盡管在實際的應用程序中這不會影響性能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM