[英]Java declaration of global string variables
我正在編寫服務器程序和客戶端程序。 我將服務器代碼文件命名為server.java。 客戶端從不同的計算機運行。 客戶端可以做的一件事就是將文件上傳到服務器。 我希望服務器將上傳的文件存儲在與server.java程序文件位於同一目錄的文件夾中。 所以我使用了以下代碼:
String server_files_location = getClass().getProtectionDomain().getCodeSource().getLocation().getPath();
這確實有效。 但是我必須在我寫的所有不同類中分別聲明這個變量。 我想讓它成為一個全局字符串變量,這樣我每次添加新的類或方法時都不必聲明它。
所以在程序開始時我嘗試了:
public static String server_files_location = getClass().getProtectionDomain().getCodeSource().getLocation().getPath();
這給了我一個錯誤說Cannot make a static reference to the non-static method getClass() from the type Object
。
我怎樣才能讓這個變量在全球范圍內可訪問?
使用您聲明變量的類中的類文字。
public static String server_files_location =
YourClass.class.getProtectionDomain().getCodeSource().getLocation().getPath();
如果變量是常量並且永遠不會改變,請考慮將變量final
。 此外,正常的Java變量命名約定會說以駝峰serverFilesLocation
命名變量,例如serverFilesLocation
,或者如果它是常量,則在ALL CAPS中,例如SERVER_FILES_LOCATION
。
在變量聲明中刪除static
。 如果變量和實例都是公共的,那么所有實例都能夠訪問一個實例的副本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.