簡體   English   中英

class 中的私有 static 方法的優缺點?

[英]private static method in class pros and cons?

有時在編寫 class 時,您需要一些輔助方法來處理一些簡單的事情(以某種方式更改字符串或進行一些簡單的計算)。

如果輔助功能足夠小(並且任何其他類都不需要),那么在此 class 中編寫輔助方法是有意義的。

現在:假設您不需要訪問任何成員變量,最好將此方法設為privateprivate static

下面的例子:只實現一個方法來檢查一個字符串是否不是null並且包含 foo。

public class SomeClass

...

 public void calculate(String inputString) {
  ...
  boolean foo = getFoo(inputString);
 }

 private (static) boolean getFoo(String inputString) {
  return inputString != null && inputString.contains("foo");
 }

}

制作方法 static 或非靜態方法是否有優缺點。 有一般的做和不做嗎?

我個人會制作方法 static - 它更清楚地表明它依賴於 object 的 state。 這可能會在線程安全方面產生連鎖反應(盡管如果要訪問該類型的static成員,則需要小心這一點)。

鑒於它是私有的,您無需擔心子類是否想要覆蓋它。

您以后總是可以使它成為非靜態的-我認為唯一的副作用是可能會更改序列化 ID。 (二進制序列化就是這樣的痛苦。)

如果需要訪問非靜態成員變量,則將其設為非靜態,如果不需要,則將其設為 static。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM