为什么象下面一样写一个数组会出错啊?
String[] AdminUser = new String[3];AdminUser = {rs.getString("ID"),rs.getString("password"),rs.getString("city_no")};非得要这样写么:String[] AdminUser={rs.getString("ID"),rs.getString("password"),rs.getString("city_no")};

解决方案 »

  1.   

    可以声明和赋值分开的,如下:
    AdminUser = new String[] {rs.getString("ID"),rs.getString("password"),rs.getString("city_no")};
      

  2.   

    { }是Java提供的将声明和初始化放在一起的简捷方式String[] arr = {"a", "b", "c"};是String[] arr = new String[]{"a", "b", "c"};的简写形式。换句话说,{ } 只能用于在声明的同时就进行初始化,而不能只用于初始化数组。如果已经用String[] arr = new String[3];进行了声明,那么就不能用{ }进行初始化,如果紧接着写String[] arr = new String[]{"a", "b", "c"};那么第一行其实是没用的,因为这两行一共new了两个String数组,第二行创建的string数组会覆盖第一行创建的String数组。
      

  3.   

    上面的有个小错误,看这个吧:{ }是Java提供的将声明和初始化放在一起的简捷方式String[] arr = {"a", "b", "c"};是String[] arr = new String[]{"a", "b", "c"};的简写形式。换句话说,{ } 只能用于在声明的同时就进行初始化,而不能只用于初始化数组。如果已经用String[] arr = new String[3];进行了声明,那么就不能用{ }进行初始化,如果紧接着写arr = new String[]{"a", "b", "c"};那么第一行其实是没用的,因为这两行一共new了两个String数组,第二行创建的string数组会覆盖第一行创建的String数组。
      

  4.   

    抛开rs.getString("ID")等函数,你就会发现你所作的事情是:String[] str=new String[3];str={"a","b","c"};这种赋值方式,是各种常见的程序语言都不允许的,呵呵。
      

  5.   

    只有初始化时才能这样{"a", "b", "c"};