我们可以用:operator创建一个Java变量吗?

时间:2015-09-21 12:33:18

标签: java variables jaxb syntax-error

是否可以像这样声明变量:

private String xmlns:xsi; 

导致以下错误:

Syntax error on token ":", , expected

但是,我希望在我的变量名称中包含&#39; <#39; 。这是强制性的。

这是强制性的,因为我使用jaxb api将我的xml文件解组为Java。在XML中,我有一个名为xmlns:xsi属性的元素。现在,在POJO中,我必须使用此属性作为存储值的变量。这就是为什么我必须拥有这样的变量名。

4 个答案:

答案 0 :(得分:2)

每种编程语言都有自己的规则和约定,适用于您允许使用的各种名称,Java编程语言也不例外。命名变量的规则和约定可归纳如下:

  • 变量名称区分大小写。变量的名称可以是任何合法的标识符 - 无限长度的Unicode字母和数字序列,以字母开头,美元符号&#34; $&#34;或下划线字符&#34; &#34 ;.然而,惯例是始终用一个字母开始你的变量名,而不是&#34; $&#34;或&#34; &#34;。此外,按照惯例,美元符号字符根本不会被使用。您可能会发现某些情况,其中自动生成的名称将包含美元符号,但您的变量名称应始终避免使用它。对于下划线字符存在类似的约定;虽然使用&#34; _&#34;开始使用变量的名称在技术上是合法的,但不鼓励这种做法。不允许有空格。
  • 后续字符可以是字母,数字,美元符号或下划线字符。约定(和常识)也适用于此规则。为变量选择名称时,请使用完整单词而不是隐藏缩写。这样做可以使您的代码更易于阅读和理解。在许多情况下,它还会使您的代码自我记录;例如,名为cadence,speed和gear的字段比缩写版本(如s,c和g)更直观。另请注意,您选择的名称不得是关键字或保留字。
  • 如果您选择的名称只包含一个单词,则拼写全部小写字母。如果它由多个单词组成,则将每个后续单词的首字母大写。名称gearRatio和currentGear是此约定的主要示例。如果变量存储常量值,例如static final int NUM_GEARS = 6,则约定会略有变化,将每个字母大写并用后缀字符分隔后续单词。按照惯例,下划线字符从未在别处使用过。

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");