public void f(String[] str) {}上面定义的那个方个方法.我这么调用为什么不行?f({"a"});出错.非得先这样  String[] str = {"a"}; f(str); //为什么非得这样.字符串这样调用就行假如:
public void m(String str) {}m("a"); //OK不出错.不用非得 String str = "a"; m(str); 为什么??

解决方案 »

  1.   

    {"a"}  不说别的,就这么写的话,你能看出这个是什么吗?类型不对 String[] str = {"a"}就是先定义下这个是数组,然后在传递就没有问题了
      

  2.   

    f(new String[]{"a"});这样应该就可以了
      

  3.   

    String[] str = {"a"}这是定义一个字符串数组,str是数组名,“a”是一个字符串数组的元素,如果要用f({"a"})调用,{"a"}不是数组元素,类型出错;而f(str)是调用这个字符数组,数组中的所有元素都会被调用,是正确的数组调用。
    public void m(String str) 这是一个无返回值的公共函数m “String str”是m的参数String是参数类型,表示一个字符串类型的str,字符串用“”表示,如“a”、“iyugututgu”就是字符串。所以用
    m(“a”)调用。你没有搞清楚字符串数组与字符串的区别,搞清楚就明白了还有不同类型函数的调用,形参与实参
      

  4.   

    {"a"}这个是什么类型?如果你的传入参数的类型是Object是可以的楼主去看看java的基本类型  基础很重要