是否可以像这样声明变量:
private String xmlns:xsi;
导致以下错误:
Syntax error on token ":", , expected
但是,我希望在我的变量名称中包含&#39; <#39; 。这是强制性的。
这是强制性的,因为我使用jaxb api将我的xml文件解组为Java。在XML中,我有一个名为xmlns:xsi属性的元素。现在,在POJO中,我必须使用此属性作为存储值的变量。这就是为什么我必须拥有这样的变量名。
答案 0 :(得分:2)
每种编程语言都有自己的规则和约定,适用于您允许使用的各种名称,Java编程语言也不例外。命名变量的规则和约定可归纳如下:
via:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/variables.html
编辑:如果你真的想这样做的另一种方式。
如果您确实需要在特定变量上映射字符串值。 您可以使用HASH MAP
Map<String,String> stringMap = new HashMap<String,String>();
stringMap .put("xmlns:xsi", "variableValue");
答案 1 :(得分:0)
不,你不能创建包含:字符的变量,请参考下面的文档:
https://docs.oracle.com/javase/tutorial/java/nutsandbolts/variables.html
变量名称区分大小写。变量的名称可以是任何合法的 identifier - 无限长度的Unicode字母和序列 数字,以字母开头,美元符号“$”或者 下划线字符“”。然而,该公约始终是开始的 您的变量名称带有字母,而不是“$”或“”。另外, 按照惯例,美元符号字符从未使用过。你可以 找到一些自动生成的名称将包含的情况 美元符号,但您的变量名应始终避免使用它。一个 对于下划线字符存在类似的约定;虽然它是 在技术上合法,用“_”开始变量的名称,这个 不鼓励练习。不允许有空白区域。随后 字符可以是字母,数字,美元符号或下划线 字符。约定(和常识)也适用于此规则。 为变量选择名称时,请使用完整的单词而不是 神秘的缩写。这样做可以使您的代码更易于阅读和 了解。在许多情况下,它也会生成您的代码 自记录文件;例如,名为cadence,speed和gear的字段 比缩写版本更直观,例如s,c和 G。另请注意,您选择的名称不得是关键字或 保留字。如果您选择的名称只包含一个单词拼写 所有小写字母的单词。如果它由多个组成 单词,大写每个后续单词的第一个字母。名字 gearRatio和currentGear是这个惯例的主要例子。如果 您的变量存储一个常量值,例如static final int NUM_GEARS = 6,约定略有变化,每个都大写 用下划线字母分隔后续单词。 按照惯例,下划线字符从未在别处使用过。
答案 2 :(得分:0)
不,:不是Java标识符中的合法字符。
答案 3 :(得分:0)
您不能在变量名中使用:
字符。变量名称无论如何都不存在于运行时,因此赋予它这样的名称没有任何好处。
如果您想使用字符串xmlns:xsi
来引用某个值,请使用Map。
Map<String, String> map = new HashMap<String, String>();
map.put("xmlns:xsi", "foo");