2016-04-26 83 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")

相關問題