[英]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.