Я думаю, что apache обеспечивает лучший класс util, который предоставляет функцию для получения строки
ReflectionToStringBuilder.toString(object)
Это не так - многие специальные символы действительно действительны для идентификаторов. Он определен в JLS # 3.8 :
Идентификатор представляет собой неограниченную последовательность букв Java и цифр Java, первая из которых должна быть буквой Java , [...] «Письмо Java» - это символ, для которого метод
blockquote>Character.isJavaIdentifierStart(int)
возвращает true. «Буква или цифра Java» - это символ, для которого методCharacter.isJavaIdentifierPart(int)
возвращает значение true.Например, это допустимое имя переменной:
String sçèêûá¢é£¥ = "bc";
Вы можете увидеть все допустимые символы с помощью этого простого кода:
public static void main(String args[]) { for (int i = 0; i < Character.MAX_VALUE; i++) { if (Character.isJavaIdentifierPart(i)) { System.out.println("i = " + i + ": " + (char) i); } } }
ps: хорошие примеры в блоге @ PeterLawrey
Следующий код действителен в Java ...
int Δ = 1;
double π = 3.141592;
String 你好 = "hello";
Δ++;
System.out.println(Δ);
Я бы сказал, что это довольно специальные символы для имен переменных.
Источник: http : //rosettacode.org/wiki/Unicode_variable_names#Java
На самом деле существует огромное количество специальных символов, которые разрешены в идентификаторах Java, как есть. Например, вы можете иметь каждый символ валюты и все 10 символов продолжения (а не только _)
if( ⁀ ‿ ⁀ == ⁀ ⁔ ⁀ || ¢ + ¢== ₡)
Еще более странно вы можете иметь символы, которые невидимы или заставить текст печататься назад.
Следующая программа имеет \u202e
в своих идентификаторах, что приводит к ее «специальному» виду.
for (char ch = 0; ch < Character.MAX_VALUE; ch++)
if (Character.isJavaIdentifierPart(ch) && !Character.isJavaIdentifierStart(ch))
System.out.printf("%04x <%s>%n", (int) ch, "" + ch);
Это печатает все специальные символы, разрешенные в идентификаторе, который компилируется и запускается.
http://vanillajava.blogspot.co.uk/2012/09/hidden-code.html
http: // vanillajava. blogspot.co.uk/2012/08/uses-for-special-characters-in-java-code.html