2015-01-13 124 views
1

这是我的主要方法不兼容的类型

import java.util.*; 
public class Cities 
{ 
    static String [] extractCity (String [] cityStateZip) 
    { 
     int location; 
     ArrayList<String> cities= new ArrayList<String>(Arrays.asList(cityStateZip)); 

     for (int i=0; i < cities.size(); i++) 
     { 
      cities.get(i); 
     } 

     for (int i=0; i<cityStateZip.length; i++) 
     { 
      if (cityStateZip[i] == null || cityStateZip[i].equals(" ")) 
       break; 
      cities.add(cityStateZip[i].substring(0, cityStateZip[i].indexOf(","))); 
     } 

     return cities; 
    } 
} 

的错误是在“回归城市”,表明它是不兼容的类型。我知道它期待一个int,但我不知道如何解决它。 (我已经看过类似的问题,但我似乎没有很好地理解这个概念)

在此先感谢您。

+6

你觉得它在等一个'int'为什么?什么类型是“城市”?你的方法的返回类型是什么类型? –

+0

你可以添加堆栈跟踪吗? – Ascalonian

+4

@Ascalonian没有堆栈跟踪。这是一个编译错误。 –

回答

6

extractCity应返回一个字符串数组,但您尝试返回String的ArrayList。

做这样的:

return cities.toArray(new String[cities.size()]); 
5

你的函数声明为返回“字符串数组”,而不是一个int。 “城市”是一个字符串的ArrayList。

ArrayList<String>不是一个字符串数组。 (这是你的错误来自)

一个可行的办法:改变你的方法返回的ArrayList

如:

public static ArrayList<String> extractCity(String[] cityStateZip) { 
    //code 
} 
8

cities不是String[]它是一个List<String>。返回该方法的String[]

return cities.toArray(new String[0]); 

或修改返回类型一样

static List<String> extractCity (String [] cityStateZip) 
1
static String [] extractCity (String [] cityStateZip){ 
    ArrayList<String> cities= new ArrayList<String>(Arrays.asList(cityStateZip)); 
    return cities.toArray(new String[cities.size()]); 
} 

更改返回类型String []