靜態方法不應包含狀態。 '狀態'在這裏意味着什麼?靜態方法中的無狀態意味着什麼?
我讀過那個靜態方法不需要實例化,也不用實例化變量。那我什麼時候可以使用靜態方法?我讀過靜態方法不好?編碼時應該包括它嗎?
靜態方法不應包含狀態。 '狀態'在這裏意味着什麼?靜態方法中的無狀態意味着什麼?
我讀過那個靜態方法不需要實例化,也不用實例化變量。那我什麼時候可以使用靜態方法?我讀過靜態方法不好?編碼時應該包括它嗎?
狀態意味着存儲一些信息,當一個類被加載時會加載靜態方法,所以不需要實例來調用靜態方法,您可以使用類的名稱調用此方法,它取決於何時使用靜態的條件方法。您可以使用靜態方法作爲產品的單個組件,只需傳遞參數並完成工作即可。
如這裏的答案是一個例子:
public class SomeUtilityClass {
private static boolean state = false;
public static void callMeTwiceImBad() throws Exception {
if (state) {
throw new Exception("I remember my state from previous call!");
}
state = true;
}
public static int sum(int a, int b) {
return a + b;
}
}
就其本身而言,它們既不壞也不好,他們只是靜態的。