Java 为什么';打印方法是否接受linkedlist对象?

Java 为什么';打印方法是否接受linkedlist对象?,java,printing,linked-list,Java,Printing,Linked List,我有一个项目,我必须创建和使用打印链表方法。我可以使用基本for循环打印,但收到一个错误:尝试使用打印方法时,linkedlist名称无法转换为Name[]。我对数组使用了类似的方法,效果很好 public class Scratch { public static void main(String[] args) { //Animal type(string) and age(int) Animal animal1 = new

我有一个项目,我必须创建和使用打印链表方法。我可以使用基本for循环打印,但收到一个错误:尝试使用打印方法时,linkedlist名称无法转换为Name[]。我对数组使用了类似的方法,效果很好

public class Scratch {
        public static void main(String[] args) {
        
        //Animal type(string) and age(int)
        Animal animal1 = new Animal("dog",7);
        Animal animal2 = new Animal("cat",4);
        Animal animal3 = new Animal("direwolf",30);
        
        //Name includes Animal using constructor
        Name name1 = new Name("Cujo",animal1);
        Name name2 = new Name("Pete",animal2);
        Name name3 = new Name("Ghost",animal3);      
        
        //Must create linkedlist
        LinkedList<Name> name = new LinkedList<Name>();
        name.add(name1);
        name.add(name2);
        name.add(name3);
        System.out.println();
        
        //Prints Fine
        for(Name n : name){
            System.out.println(n);
            System.out.println();
        }

        //Doesn't print: Error linkedlist Name<> cannot be converted to Name[]
        printLL(name);  
    }
    
    private static void printLL(Name[] pll){
        for (Name e : pll){
            System.out.println(e);
        }
    }   
}
公共类刮擦{
公共静态void main(字符串[]args){
//动物类型(字符串)和年龄(整数)
动物1=新动物(“狗”,7);
动物2=新动物(“猫”,4);
动物动物3=新动物(“土狼”,30);
//名称包括使用构造函数的动物
Name name1=新名称(“Cujo”,animal1);
名称2=新名称(“皮特”,动物2);
名称3=新名称(“鬼”,动物3);
//必须创建linkedlist
LinkedList name=新建LinkedList();
名称。添加(名称1);
名称。添加(名称2);
名称。添加(名称3);
System.out.println();
//印刷品很好
用于(名称n:名称){
系统输出println(n);
System.out.println();
}
//不打印:错误linkedlist名称无法转换为名称[]
printLL(姓名);
}
专用静态void printl(名称[]pll){
用于(名称e:pll){
系统输出打印ln(e);
}
}   
}

printLL将名称数组作为参数。如果你给它一个linkedList,为什么你会期望它起作用呢

尝试:

private static void printl(列表pll){
用于(名称e:pll){
系统输出打印ln(e);
}
}   

链表(
LinkedList
)不是数组(
Name[]
)。另外,当您调用
printLinkedList()
时,您的方法被称为
printLL()
?真的吗?我得到“Symbol not found:
printLinkedList
”为什么您认为可以将
LinkedList
值分配给
Name[]
类型的参数?我本不应该期望它工作,但很明显,我不理解数组打印方法的所有细微差别。似乎这些项目旨在帮助人们连接他们以前从未使用过的部件。谢谢
private static void printLL(List<Name> pll){
    for (Name e : pll){
        System.out.println(e);
    }
}