繁体   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