错误:类型java.lang.Object的方法add(java.lang.String)未定义

错误:类型java.lang.Object的方法add(java.lang.String)未定义,java,arraylist,compiler-errors,Java,Arraylist,Compiler Errors,不知道我为什么会犯这个错误。使用ArrayList并按字母顺序将单词排序到适当的ArrayList中。如果有人能帮助我理解为什么我会出错,以及如何修复它,那就太好了 import java.util.*; public class Sort { public static ArrayList<Object> sortByFirstLetter( List<String> words) { ArrayList<Object> bucke

不知道我为什么会犯这个错误。使用ArrayList并按字母顺序将单词排序到适当的ArrayList中。如果有人能帮助我理解为什么我会出错,以及如何修复它,那就太好了

import java.util.*;

public class Sort {
    public static ArrayList<Object> sortByFirstLetter( List<String> words) {
        ArrayList<Object> bucket = new ArrayList<Object>();
        for( int i = 0; i < 26; i++ ) {
            ArrayList<String> letter = new ArrayList<String>();
            bucket.add(letter);
        }
        for( String word : words ) {
            int index = (int)(word.toLowerCase().charAt(0)) - 97; //get a number 0-25 for index; 97 is unicode for lwrcse "a"
            System.out.println(index);
            bucket.get(index).add(str);     //THIS LINE GIVES ERROR
        }
        return bucket;
    }

    public static void main(String[] args) {   
        List<String> words = Arrays.asList("alex", "andy", "kevin");
        sortByFirstLetter( words );
    }
import java.util.*;
公共类排序{
公共静态数组列表sortByFirstLetter(列表字){
ArrayList bucket=新的ArrayList();
对于(int i=0;i<26;i++){
ArrayList字母=新的ArrayList();
添加(字母);
}
for(字符串字:字){
int index=(int)(word.toLowerCase().charAt(0))-97;//获取索引的数字0-25;97是lwrcse“a”的unicode
系统输出打印项次(索引);
bucket.get(index.add(str);//此行给出错误
}
返回铲斗;
}
公共静态void main(字符串[]args){
List words=array.asList(“alex”、“andy”、“kevin”);
sortByFirstLetter(字);
}

}

看起来bucket应该是
列表,而不是
列表。现在还不清楚为什么您首先将其列为对象列表。

您打算添加什么?您当前正试图“添加”到
对象中,这是毫无意义的。是否尝试通过写入
列表而不是
列表来添加到ArrayList中的ArrayList?