2016-04-26 82 views
0

我想创建一个方法在类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; 
    } 
} 

Syntax Error(s)
Tester.java:20: error: method getSortedArrayList in class ArrayTest cannot be applied to giventypes;

System.out.println(ArrayTest.getSortedArrayList("Mark","Andrew", "Beth"));;

     ^

required: String[]

found: String,String,String

reason: actual and formal argument lists differ in length

1 error

+0

您正在接收的错误消息不会保留从你所显示的代码结果中删除最大的错误 – SomeJavaGuy

+0

像“东西”这样的词很模糊,请详细说明它在哪里说错误以及错误是什么 – Lain

回答

0

你的程序是这样做的:

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

它看看行由行:

  1. 创建一个新的ArrayList<String> (没有元素)
  2. 对刚创建的进行排序(没有元素)
  3. 返回的ArrayList<String>(没有元素)

好像你想拥有String[] args排序,所以你需要在你的ArrayList<String>有这些元素。

0

更改呼叫

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

,或者更好,改变方法签名使用可变参数:

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

所以args将被视为一个String[](即你可以使用.length[] ),您可以拨打电话ArrayTest.getSortedArrayList("Mark", "Andrew", "Beth")

相关问题