java数组索引越界
我想创建一个组合框,它在运行时从数据库中获取名称。所以我创建了一个空字符串数组,但它抛出了一个异常ArrayIndexOutofBond。我认为初始化中有一个错误
String s[]=new String[0];
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con =DriverManager.getConnection("jdbc:odbc:project","sa","123456");
Statement stmt= con.createStatement();
ResultSet rs=stmt.executeQuery("SELECT Name FROM company");
i=0;
while(rs.next()) {
s[i]=rs.getString(1);
i++;
}
}
catch(Exception ex)
{
JOptionPane.showConfirmDialog(f,ex);
}
cb=new JComboBox(s);
}
# 1 楼答案
您还可以使用向量列表:
# 2 楼答案
您创建了长度为0的数组。如果你知道需要多少成员使用数组,如果你不知道最好使用ArrayList
# 3 楼答案
我还在做一个项目,从数据库中获取数据并将其添加到组合框中,我希望您能简单处理,不需要创建数组,您只需编写:
注意:如果您想先保存数据,然后将其添加到combobox中,您应该使用Vector而不是array,因为它有限制u将按照
新来的白痴
# 4 楼答案
数组是一个容器对象,它包含固定数量的单一类型的值。数组的长度是在创建数组时确定的。创建后,其长度是固定的。您正在创建一个数组以容纳0个元素
当您试图访问它的第一个元素}
s[0]
时,它将抛出^{大小数组的大小为
0
,因此在访问索引0
时引发异常下面是阵列的基本示意图,以供理解
它是一个长度为
10
的数组,索引范围为0
到9
由于在声明数组本身时不知道数据结构需要存储的元素数。在您的案例中,最好使用动态Collection,可能是List的任何一个实现,比如ArrayList
建议阅读: