这就是我在做的事情:
String[] output = new String[index.length];
try{
for(int i=0; i<index.length; i++){
Statement st = con.createStatement();
ResultSet res = st.executeQuery(
"SELECT url FROM resources WHERE rid = "+(index[i]);
while(res.next()){
output[i] = res.getString("url"); //<-- this is where exception is thrown
}
} catch(...)
方法正在运行,但它不是打印正确的网址值,而是像这样引用:
[Ljava.lang.String;@85af80
这是什么意思? mySQL中的url字段是VarChar,它可以正常使用上面的方法但在这个循环中为什么我得到上面的结果?
答案 0 :(得分:3)
您尚未初始化output[]
!
试试这个:
String[] output = new String[index.length];
这个奇怪的输出是由打印数组引起的,即System.out.println(output);
请改为尝试:
System.out.println(Arrays.toString(output));
有点蹩脚,但java不会自动打印数组内容,它会打印对象类型和地址。提示是开头的字母L
,用于表示数组