簡體   English   中英

Java 枚舉中的特殊字符

[英]Special Characters in Java Enums

目前正在嘗試使用特殊字符,主要是“.” 一個數字,但是,枚舉似乎只需要字母。 有沒有辦法使用特殊字符? 目前正在嘗試制作一個文件保護程序,許多文件類型中都有數字,例如:

public enum FileType {

    7z(".7z"),
    ace(".ace"),
    apk(".apk"),
    bz2(".bz2"),
    crx(".crx"),
    dd(".dd"),
    deb(".deb"),
    gz(".gz"),
    gzip(".gzip"),
    jar(".jar"),
    rar(".rar"),
    rpm(".rpm"),
    sit(".sit"),
    sitx(".sitx"),
    snb(".snb"),
    tar(".tar"),
    tar.gz(".tar.gz"),
    tqz(".tqz"),
    zip(".zip"),
    zipx(".zipx");

    public final String FILESUFFIX;

    FileType(String FileSuffix) {
        this.FILESUFFIX = FileSuffix;
    }

    public String getSuffix() {
        return FILESUFFIX;
    }
}

我查看了整個 StackOverflow,但是,我還沒有找到適合我的方法。 我不明白如何做“地圖”或其他花哨的東西,那么有沒有另一種方法可以簡單地將mp4之類的東西變成枚舉?

枚舉7z中聲明的該值無效,因為您不能聲明名稱為7z的變量,因為它將是無效的Java標識符 https://docs.oracle.com/cd/E19798-01/821-1841/bnbuk /index.html

可以使用下划線代替,更好的方法是使用UPPER_CASE

public enum FileType {

    _7Z(".7z"),
    _ACE(".ace"),
    _APK(".apk"),
    _BZ2(".bz2"),
    _CRX(".crx"),
    etc etc

枚舉標識符遵循與其他Java標識符相同的規則

標識符唯一允許的字符是所有字母數字字符([AZ],[az],[0-9]),“ $”(美元符號)和“ _”(下划線)。

標識符不應以數字([0-9])開頭。 例如,“ 123geeks”是無效的Java標識符。

Java標識符區分大小寫

在您的示例中, mp4是有效的標識符,但7z不是(因為它以數字開頭)

注意:按照慣例,枚舉標識符通常都是大寫的。

package com.ecom.test;

enum SpecialChars {
    PIPELINE_SYMBOL("|"), FORWARD_SLASH("/");

    private String value;

    private SpecialChars(String value) {
        this.value = value;
    }

    public String toString() {
        return this.value; // will return , or ' instead of COMMA or APOSTROPHE
    }

}
public class Test1 {

    public static void main(String[] args) {

    
        System.out.println(SpecialChars.PIPELINE_SYMBOL);
        System.out.println(SpecialChars.FORWARD_SLASH);

        }
}

暫無
暫無

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

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