首页 > 解决方案 > 如何正确使用枚举?

问题描述

这是我的枚举:

public enum Etichetta {
FT/IR, //problem with '/' character
IB,
COMM;
}

我怎样才能得到那个特殊的字符?请记住,我使用通过邮件在正文中发送给我的这个对象,然后我必须保存到数据库。

public class PrimaNota {
    private Integer id;
    private String impo;
    private String codC;
    private Etichetta etichetta;
}

在邮寄方式中,他们将 FT/IR 作为 Etichetta 发送给我。我能怎么做?

标签: javaenums

解决方案


这个问题不是由枚举引起的。您不能在任何标识符中使用特殊字符“/”,例如枚举、记录、类、函数或变量。

您可以在https://docs.oracle.com/javase/specs/jls/se16/html/jls-3.html中找到允许的字符。但是,即使某些东西是合法的,这也不一定意味着这是一个好主意,因为存在某些命名约定,例如类名的 UpperCamelCase。

Identifier:
IdentifierChars but not a Keyword or BooleanLiteral or NullLiteral

IdentifierChars:
JavaLetter {JavaLetterOrDigit}

JavaLetter:
any Unicode character that is a "Java letter"

JavaLetterOrDigit:
any Unicode character that is a "Java letter-or-digit"

“Java 字母”包括大写和小写 ASCII 拉丁字母 AZ (\u0041-\u005a) 和 az (\u0061-\u007a),以及由于历史原因,ASCII 美元符号($ 或 \u0024)和下划线(_ 或 \u005f)。美元符号应仅用于机械生成的源代码中,或者很少用于访问遗留系统上预先存在的名称。下划线可以用在由两个或多个字符组成的标识符中,但由于是关键字,它不能用作一个字符的标识符。

“Java 数字”包括 ASCII 数字 0-9 (\u0030-\u0039)。

但是,您可以做的是创建一个构造函数,该构造函数接受一个字符串参数并将其传递给一个字段,并在创建枚举时调用该构造函数。通过这种方式,您可以将各种字符串与您的枚举常量相关联。


推荐阅读