public String getFullname(){
        return firstName+ " "+ lastName;
    }
    public static void printUser(List<newClass> users){
        for(newClass u: users)
        System.out.println(u.getFullname());
    }


getFullname是非静态引用,但是当我使用List作为参数时,它如何工作呢。

当然,我知道如果我像这样编写这段代码,它将无法正常工作

System.out.println(getFullname());



因为printUser是静态的而不是getFullname。

最佳答案

在第一次调用中,u从对象实例调用方法:
u.getFullname()
在第二次调用中,当您尝试调用方法时
getFullname()
就像this.getFullname()
调用静态方法时,就像newClass.printUser(users)一样,并且没有创建对象实例。因此,您无法执行this.getFullname(),因为未创建此对象实例。
Static methods vs Instance methods in Java

关于java - 如何使用Java中的List静态引用非静态对象?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60145946/

10-09 00:14