Java裏默認不允許靜態方法直接調用非靜態方法。如果非要使用,只能通過類對象的引用去調。靜態方法裏的傳參:當前類對象。
舉例:
public class StaticMethodTest{
/**線程安全單例模式*/
private StaticMethodTest (){};
private static class GetSingleHolder{
private static final StaticMethodTest INSTANCE = new StaticMethodTest();
}
public static StaticMethodTest getInstance(){
return GetSingleHolder.INSTANCE;
}
/**線程安全單例模式*/
void NonStaticMethod(){
System.out.println("This is a non-sataic method.");
}
static void StaticMethod(StaticMethodTest s){
System.out.println("This is a static method.");
s.NonStaticMethod();
}
/**調用*/
public satic void invokeStaticMethod(){
StaticMethod(StaticMethodTest.getInstance());
}
}