KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I recently learned that Unicode is permitted within Java source code not only as Unicode characters (eg. double π = Math.PI; ) but also as escaped sequences (eg. double \u03C0 = Math.PI; ). The first variant makes sense to me - it allows programmers to name variables and methods in an international language of their choice. However, I don't see any practical application of the second approach. Here are a few pieces of code to illustrate usage, tested with Java SE 6 and NetBeans 6.9.1: This code will print out 3.141592653589793 public static void main(String[] args) { double π = Math.PI; System.out.println(\u03C0); } Explanation: π and \u03C0 are the same Unicode character This code will not print out anything public static void main(String[] args) { double π = Math.PI; /\u002A System.out.println(π); /* a comment */ } Explanation: The code above actually encodes: public static void main(String[] args) { double π = Math.PI; /* System.out.println(π); /* a comment */ } Which comments out the print satement. Just from my examples, I notice a number of potential problems with this language feature. First, a bad programmer could use it to secretly comment out bits of code, or create multiple ways of identifying the same variable. Perhaps there are other horrible things that can be done that I haven't thought of. Second, there seems to be a lack of support among IDEs. Neither NetBeans nor Eclipse provided the correct code highlighting for the examples. In fact, NetBeans even marked a syntax error (though compilation was not a problem). Finally, this feature is poorly documented and not commonly accepted. Why would a programmer use something in his code
Tags (comma-separated)
Save Edits
Cancel