Java 如果返回类型是静态的,那么方法是否必须是静态的

Java 如果返回类型是静态的,那么方法是否必须是静态的,java,static,singleton,static-methods,static-variables,Java,Static,Singleton,Static Methods,Static Variables,我在学习Singleton时遇到了以下代码块 public class School { private static School school; private ArrayList<String> teachers; private School(){ teachers = new ArrayList<>(); teachers.add("adam"); teachers.add("john"); teachers.add("jacks

我在学习Singleton时遇到了以下代码块

public class School {
private static School school;
private ArrayList<String> teachers;
private School(){
    teachers = new ArrayList<>();
    teachers.add("adam");
    teachers.add("john");
    teachers.add("jackson");
    teachers.add("jason");
}
public static School getInstance(){
    if (school==null)
        school=new School();
    return school;
}
public String getTeacher(){
    if (!(teachers.size() ==0))
        return teachers.remove(0);
    return "no teachers left";
}
公立学校{
私立静态学校;
私立ArrayList教师;
私立学校(){
教师=新ArrayList();
教师。添加(“adam”);
教师。加上(“约翰”);
教师。添加(“杰克逊”);
教师。添加(“jason”);
}
公共静态学校getInstance(){
如果(学校==null)
学校=新学校();
返校;
}
公共字符串getTeacher(){
如果(!(teachers.size()=0))
返回教师。删除(0);
返回“无教师离开”;
}
}

如您所见,getInstance()方法是静态的。我在徘徊为什么

提前感谢您的帮助:)


我知道返回类型不是静态的。这里的返回类型是学校。在Singleton中,必须有一个实例使用类it self的静态变量,我得到了这一部分,并且非常有意义。但我的问题是,为什么设置静态变量的方法也必须是静态的?这就是问题所在

因为这是一个单例的要点,是整个程序的一个实例


如果不是静态的,则必须使用Singleton类的实例来调用getInstance()方法,这没有任何意义。

常见的设计模式(Singleton)是使用该类的实例字段。该字段必须是静态的(以便可以在没有类的预先存在的实例的情况下检索该字段),因此,访问该字段的任何方法也必须是静态的。

返回类型不是静态的。该方法是静态的。请参阅JLS:

您认为退货类型是静态的意思是什么?你为什么这么认为?谢谢你的回答。实际上你是唯一理解我问题的人。干杯