名为“的Java枚举字段”;浮动;
我有一个代码生成器,它根据一些用户定义的名称生成枚举。出于某种原因,如果用户使用字段定义枚举,例如“float”、“switch”或其他特定于编译器的关键字,Java会抱怨 例如,我想用两个字段“float”和“switch”定义一个枚举: 然而,Java认为它是一个浮点变量,它根本不理解switch变量 在C中(如果我没有弄错的话),这没有问题名为“的Java枚举字段”;浮动;,java,enums,Java,Enums,我有一个代码生成器,它根据一些用户定义的名称生成枚举。出于某种原因,如果用户使用字段定义枚举,例如“float”、“switch”或其他特定于编译器的关键字,Java会抱怨 例如,我想用两个字段“float”和“switch”定义一个枚举: 然而,Java认为它是一个浮点变量,它根本不理解switch变量 在C中(如果我没有弄错的话),这没有问题 enum TestEnum { float = 100, switch = 200, }; 是否可以对枚举使用这样的“名称” fl
enum TestEnum {
float = 100,
switch = 200,
};
是否可以对枚举使用这样的“名称”
float
和switch
是Java中的关键字,不能用作enum
值。我建议遵循以下约定并使其大写(即浮点
,开关
)
这在java中是不可能的。
代码风格意味着使用EnUM常数的上(除以必要的话)的名称。
C和C++相同:这些关键字(和所有其他关键字)不能用作标识符。虽然标准库中的类型和(对于C++)类的名称(可以重复使用)(尽管这样做通常会让人感到困惑和不明智)都较低,比如
time\t fpos\t string vector
,因此类似于关键字,而Java标准库类名有大写字母,如File ArrayList
,这使得它们明显不同
Pascal和Ada通常也保留关键字,但没有这两个关键字 Java命名约定现在已经建立并被广泛接受。以您拥有的方式命名常量字段(如枚举)(全部小写)是完全不标准的,也是非常不可取的。请注意,如果根据已建立的约定命名字段,则问题将消失。
enum TestEnum {
float = 100,
switch = 200,
};
public enum TestEnum {
FLOAT(100),
SWITCH(200);
TestEnum(int value) {
}
}