类中的方法不能应用于给定的类型

时间:2016-04-26 13:30:15

标签: java

我想在类ArrayTest中创建一个方法并对arraylist对象进行排序。 但是出了点问题:

import java.util.ArrayList;
import java.util.Collections;

public class ArrayTest{
    public static ArrayList<String> getSortedArrayList(String args[]){
        ArrayList<String> sort = new ArrayList<String>();
        Collections.sort(sort);
        return  sort;
    }
}
  

语法错误
   Tester .java:20:错误:类ArrayTest中的方法getSortedArrayList无法应用于giventypes;

     

System.out.println(ArrayTest.getSortedArrayList(&#34; Mark&#34;,&#34; Andrew&#34;,&#34; Beth&#34;));;

                         ^
     

必需:String []

     

found:String,String,String

     

原因:实际和正式的参数列表长度不同

     

1错误

2 个答案:

答案 0 :(得分:0)

您的计划正在执行此操作:

ArrayList<String> sort = new ArrayList<String>();
Collections.sort(sort);
return sort;

逐行看一下:

  1. 创建新的ArrayList<String>(没有元素)
  2. 对刚刚创建的ArrayList<String>(没有元素)
  3. 进行排序
  4. 返回ArrayList<String>(没有元素)
  5. 您似乎希望对String[] args进行排序,因此您需要在ArrayList<String>中包含这些元素。

答案 1 :(得分:0)

将通话更改为

ArrayTest.getSortedArrayList(new String[]{ "Mark", "Andrew", "Beth" });

或者更好的是,更改方法签名以使用变量参数:

public static ArrayList<String> getSortedArrayList(String ... args)

因此args将被视为String[](即您可以使用.length[]),您可以使用ArrayTest.getSortedArrayList("Mark", "Andrew", "Beth")