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