2015-09-21 2 views
0

ли Ther каким-либо образом, чтобы объявить переменную как это:Можем ли мы создать переменную Java с: operator?

private String xmlns:xsi; 

В результате в следующей ошибки:

Syntax error on token ":", , expected 

Но я хочу иметь «:» в моем имени переменной. Это обязательно.

Обязательно, потому что я использую jaxb api для развязывания моего XML-файла на Java. В XML у меня есть элемент с атрибутом с именем xmlns: xsi. Теперь, в POJO, я должен использовать этот атрибут в качестве переменной для хранения значения. Вот почему для меня обязательно иметь такое имя переменной.

+0

':' не является юридическим знаком для переменных java. Почему это обязательно? – Juan

+0

@Juan Я использую jaxb api, чтобы развязать мой XML-файл на Java. В XML у меня есть элемент с атрибутом с именем ** xmlns: xsi **. Теперь, в POJO, я должен использовать этот атрибут в качестве переменной для хранения значения. Вот почему для меня обязательно иметь имя переменной, подобное этому – Rohit

+0

см. Https://docs.oracle.com/javase/specs/jls/se7/html/jls-3.html#jls-3.8 – JimmyB

ответ

2

Каждый язык программирования имеет свой собственный набор правил и соглашений для типов имен, которые вы разрешили использовать, а язык программирования Java не отличается. Правила и условные обозначения для обозначения ваших переменных можно суммировать следующим образом:

  • Имена переменных относятся к регистру. Имя переменной может быть любым юридическим идентификатором - бесконечной последовательностью букв и цифр Юникода, начиная с буквы, знака доллара «$» или символа подчеркивания «». Однако соглашение состоит в том, чтобы всегда начинать имена переменных с буквы, а не «$» или «». Кроме того, знак доллара, по соглашению, никогда не используется вообще. Вы можете найти некоторые ситуации, когда автогенерированные имена будут содержать знак доллара, но ваши имена переменных всегда должны избегать его использования. Аналогичная конвенция существует для символа подчеркивания; в то время как технически законно начинать имя переменной с «_», эта практика не рекомендуется. Белое пространство не допускается.
  • Последующие символы могут быть буквами, цифрами, знаками доллара или символами подчеркивания. К этому правилу относятся и конвенции (и здравый смысл). Выбирая имя для своих переменных, используйте полные слова вместо загадочных сокращений. Это сделает ваш код более легким для чтения и понимания. Во многих случаях он также сделает ваш код самодокументированным; поля, названные каденцией, скоростью и шестерней, например, гораздо более интуитивно понятны, чем сокращенные версии, такие как s, c и g. Также имейте в виду, что выбранное вами имя не должно быть ключевым словом или зарезервированным словом.
  • Если имя, которое вы выбираете, состоит всего из одного слова, произносите это слово во все строчные буквы. Если он состоит из более чем одного слова, запишите первую букву каждого последующего слова. Названия gearRatio и currentGear являются яркими примерами этого соглашения. Если ваша переменная хранит постоянное значение, такое как статическое окончательное int NUM_GEARS = 6, соглашение изменяется незначительно, заглавная буква каждой буквы и разделяя последующие слова символом подчеркивания. По соглашению символ подчеркивания никогда не используется в другом месте.

через: https://docs.oracle.com/javase/tutorial/java/nutsandbolts/variables.html

Edit: Еще один способ, если вы действительно хотите сделать это.

Если вам действительно нужно сопоставить значения строк по определенной переменной. Вы можете использовать HASH MAP

Map<String,String> stringMap = new HashMap<String,String>(); 
stringMap .put("xmlns:xsi", "variableValue"); 
0

Нет, вы не можете создать переменную, содержащую: характер, см ниже документ:

https://docs.oracle.com/javase/tutorial/java/nutsandbolts/variables.html

Variable names are case-sensitive. A variable's name can be any legal identifier — an unlimited-length sequence of Unicode letters and digits, beginning with a letter, the dollar sign "$", or the underscore character "". The convention, however, is to always begin your variable names with a letter, not "$" or "". Additionally, the dollar sign character, by convention, is never used at all. You may find some situations where auto-generated names will contain the dollar sign, but your variable names should always avoid using it. A similar convention exists for the underscore character; while it's technically legal to begin your variable's name with "_", this practice is discouraged. White space is not permitted. Subsequent characters may be letters, digits, dollar signs, or underscore characters. Conventions (and common sense) apply to this rule as well. When choosing a name for your variables, use full words instead of cryptic abbreviations. Doing so will make your code easier to read and understand. In many cases it will also make your code self-documenting; fields named cadence, speed, and gear, for example, are much more intuitive than abbreviated versions, such as s, c, and g. Also keep in mind that the name you choose must not be a keyword or reserved word. If the name you choose consists of only one word, spell that word in all lowercase letters. If it consists of more than one word, capitalize the first letter of each subsequent word. The names gearRatio and currentGear are prime examples of this convention. If your variable stores a constant value, such as static final int NUM_GEARS = 6, the convention changes slightly, capitalizing every letter and separating subsequent words with the underscore character. By convention, the underscore character is never used elsewhere.

0

Нет, : не юридический символ в идентификаторе Java.

0

Вы не можете использовать символ : в именах переменных. В любом случае имена переменных не существуют во время выполнения, поэтому было бы нецелесообразно давать такое имя.

Если вы хотите использовать строку xmlns:xsi для ссылки на значение, используйте карту.

Map<String, String> map = new HashMap<String, String>(); 
map.put("xmlns:xsi", "foo"); 
+0

«Имена переменных не существуют во время выполнения в любом случае» - я уверен, что 'jaxb' и другие структуры не согласны с этим. – JimmyB

Смежные вопросы