簡體   English   中英

Java“表達式的非法開始”錯誤…如何解決此錯誤?

[英]Java “illegal start of expression” error…How to fix this error?

我正在使用NetBeans IDE開發程序,但在一行前面說了一個錯誤

非法的表達開始,且寫在下面; 預期

我是Java新手,為數組分配值時無法修復此錯誤。

以下是發生錯誤的部分代碼:


String[] colname;
   int j=0;
   while(rs.next()){
     for(int i=0;i<cols;i++){
       colname={dtm.getColumnName(i)};       //**<-- This is where the error occured**
                }
                    colName=colname;   //colName is also an array of String datatype.
                    Object[] value = {rs.getObject(colName[j])};
                    dtm.addRow(value);
                    j++;
                }

全線

colname={dtm.getColumnName(i)};

沒有給出任何錯誤。 但是錯誤僅發生在上面的行中。

我發現自己無法修復它。 誰能幫我修復它?

簡單地分配給變量時,不能使用這種形式的數組創建-它僅在變量聲明中有效。 你需要:

colname = new String[] { dtm.getColumnName(i) };

但是,我認為這實際上並沒有達到您想要的目的……除了循環的最后一次迭代之外,其他一切都沒有意義。

您可能想要更多類似的東西:

String[] colNames = new String[cols];
for (int i = 0; i < cols; i++) {
    colNames[i] = dtm.getColumnName(i);
}

我也強烈建議您避免使用以下代碼:

 colName=colname;

有兩個僅在大小寫不同的變量是一個非常糟糕的主意。

您有兩種初始化數組的方法:

String[] colname= {dtm.getColumnName(i)};

要么

colname= new String[] {dtm.getColumnName(i)};

但是你不能把它們混在一起。 在您的情況下,您將使用后者,因為您還沒有在聲明它的行上填充它的信息。

但是請注意,這可能不會做您想要的事情,因為您將在每個循環中不斷重新分配一個新數組。 您可以使用ArrayList來簡化生活:

List<String> colName = new ArrayList<String> ();

//in your loop
colName.add(dtm.getColumnName(i));

您可以在本教程中閱讀有關數組的更多信息。

暫無
暫無

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

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