![](/img/trans.png)
[英]Why some variables names have '%' or '$' symbol at the end in VB.net
[英]Why some java methods in core libraries end with numbers?
在JDK的很多類中很常見,舉幾個例子:
通常它們是私有本地方法(如在 Thread 類中),但有時它們只是私有的(Properties 類)
我只是很好奇是否有人知道這背后是否有任何歷史。
我相信它們是這樣命名的,因為代碼中存在具有相同名稱的等效函數,只是為了區分本機輔助函數和公共函數,他們決定在它們后綴為 0。
在java.util.Properties
中, load
、 store
和load0
、 store0
都存在。
方法名稱后的 0 用於區分具有相同名稱的公共方法和私有方法。
Start
function會調用start0
function。以0結尾的函數是私有方法。 而那些不以數字結尾的是公開的。 您可以在任何圖書館簽到。
在方法名稱上使用零后綴只是一種約定,用於處理您擁有公共 API 方法和相應的私有方法的情況。 在 Java SE 庫中,這通常用於提供由類實現的底層功能的native
方法。 (你可以通過查看 OpenJDK 源代碼來了解發生了什么。)
但是你的問題是:
為什么核心庫中有些java方法以數字結尾?
因為有人認為這是個好主意。 這並不是絕對必要的,因為它們通常可以重載公共方法。 由於零后綴問題是私有的,因此方法的命名不應超出 class 及其本機實現。
我只是很好奇是否有人知道這背后是否有任何歷史。
原始的 Java 樣式指南中沒有提及此約定。 事實上,我認為它早於 Java。我依稀記得在 4.x BSD Unix 的 C 庫中看到過它。那是 1980 年代中期。 如果他們從其他地方采用它,我也不會感到驚訝。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.