簡體   English   中英

如何在Java中使用保留關鍵字聲明參數名稱

[英]How to declare a parameter name with a reserved keyword in Java

我需要聲明一個像這樣的方法:

public void doSomething(Class class) {
...
}

當然, class參數名是無效的,因為它是保留關鍵字。 但是,在C#中,我可以使用@字符作為前綴來閃避。 使用@不僅可以“解決”它,而且在編譯時,在“字節碼”(IL)級別,名稱也將被刪除@字符。

Java有什么相似之處嗎? 我發現的全部是_$ 恕我直言,美元符號是其中最丑的。


后來編輯 :我知道了這個clazz東西,但我沒有提到它,希望有更好的東西。 如果那是最好的,那就這樣吧。 但是,所有保留關鍵字是否都有對應關系表? 類似於以下內容:

課->克拉斯,克拉斯

切換-> swytch,svvitch ...


以后的編輯2 :令人驚訝的是,一個合法的恕我直言,問題可以產生多少條骯臟的評論和無用的輸入。 我幾乎后悔要問。


以后的編輯3 :在Java世界中,似乎最好的辦法是閉嘴,什么也不問。 不要打擾任何人,即使沒有人問/回答某個問題,也請保持安靜,不要說話。

實際上的標准是Class clazz 您會在許多API中看到它。

不行 關鍵字是保留的,不能使用。 在我看來,使用一些奇怪的前綴轉義(例如在C#中)不是適當的解決方案,因為這會使代碼更丑陋且可讀性更差。

您可以在特殊情況下使用typeclazz

常見的約定是拼寫錯誤的參數名稱。 在您的情況下,您可以調用參數clazz

public void doSomething(Class clazz) {
...
}

我知道這很丑陋,但這是Java社區采用的解決方案。

您不能在Java中將關鍵字用作參數名或變量名(敏感)。

有幾種選擇:

  • 更改參數的大小寫。 Java區分大小寫,因此不會將參數視為保留字。
  • 使用與保留字相同的其他名稱。

您的解決方案很clazz 它更具可讀性。

public void doSomething(Class clazz) {
 ...
}

暫無
暫無

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

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