《Java解惑》系列——02字符谜题——谜题15:令人晕头转向的hello
来源:互联网 发布:开店软件哪个好 编辑:程序博客网 时间:2024/04/29 15:55
知识点:
在JavaDoc中,不要使用Unicode转义字符,应该使用HTML实体转义字符取代Unicode转义字符。
总之,要确保字符\u 不出现在一个合法的Unicode 转义字符上下文之外,即使是在注释中也是如此。
在机器生成的代码中要特别注意此问题。
问题:
下面的程序会打印什么??
结果是不是出乎大家的意料呢?的确如此。
产生这个结果的原因:
条在同一行打印o world,从而将两个字符串有效地连接在了一起。因此,你可
能期望该程序打印出Hello world。但是很可惜,你犯了错,实际上,它根本就
通不过编译。
问题在于注释的第三行,它包含了字符\units。这些字符以反斜杠(\)以及紧
跟着的字母u开头的,而它(\u)表示的是一个Unicode 转义字符的开始。遗憾
的是,这些字符后面没有紧跟四个十六进制的数字,因此,这个Unicode 转义字
符是病构的,而编译器则被要求拒绝该程序。Unicode 转义字符必须是良构的,
即使是出现在注释中也是如此。
在注释中插入一个良构的Unicode 转义字符是合法的,但是我们几乎没有什么理
由去这么做。程序员有时会在 JavaDoc注释中使用Unicode 转义字符来在文档中
生成特殊的字符。
可能你会感到很诧异,在这个谜题中,问题出在注释这一信息来源自一个实际的
bug报告。该程序是机器生成的,这使得我们很难追踪到问题的源头
——IDL-to-Java编译器。为了避免让其他程序员也陷入此境地,在没有将
Windows文件名进行预先处理,以消除的其中的反斜杠的情况下,工具应该确保
不将Windows文件名置于所生成的 Java源文件的注释中。
解决方法:
1、注意开头提到的知识点,在JavaDoc中不要使用Unicode转义字符,请使用HTML转义字符代替。
总结:
总之,要确保字符\u 不出现在一个合法的Unicode 转义字符上下文之外,即使是在注释中也是如此。在机器生成的代码中要特别注意此问题。
0 0
- 《Java解惑》系列——02字符谜题——谜题15:令人晕头转向的hello
- java解惑--谜题15:令人晕头转向的Hello
- java2-15令人晕头转向的HELLO
- 《Java解惑》系列——02字符谜题——谜题20、21的感想
- 《Java解惑》系列——02字符谜题——谜题14:转义字符的溃败
- 《Java解惑》系列——02字符谜题——谜题16:打印程序
- 《Java解惑》系列——02字符谜题——谜题17:嗯??
- 《Java解惑》系列——02字符谜题——谜题12:ABC(char[]的重载问题)
- 《Java解惑》系列——02字符谜题——谜题19:漂亮的火花(块注释)
- 《Java解惑》系列——02字符谜题——谜题11:最后的笑声(字符、字符串连接操作)
- 《Java解惑》系列——02字符谜题--字符串谜题总结
- 《Java解惑》系列——02字符谜题——谜题22:URL愚弄(Java中的标号)
- 《Java解惑》系列——02字符谜题——谜题18:字符串奶酪(new String(byte [] b))
- 《Java解惑》系列——02字符谜题——谜题14至17(总结)
- 《Java解惑》系列——02字符谜题——谜题20:我的类是什么(string的replaceAll)
- 《Java解惑》系列——02字符谜题——谜题21:我的类是什么 升级版(string的replaceAll)
- 《Java解惑》系列——02字符谜题——谜题13:动物庄园(字符串的==和equals)
- 《Java解惑》系列——02字符谜题——谜题23:不劳而获(java编程中的一些常见陷阱)
- Android---ZoomControls放大缩小图片
- Monkey 测试
- poj 2524 Ubiquitous Religions(并查集)
- 要不要考研
- 终端中常用的shell 命令
- 《Java解惑》系列——02字符谜题——谜题15:令人晕头转向的hello
- C# System.Guid.NewGuid()
- qt操作word
- Android学习使用Post方式提交数据
- 北走三朋四友要害你,你要出大事
- hdoj2011
- CodeSmith+SQLite+VS2010开发环境搭配
- 蛇形取数之【特殊的三角形】
- web请求的写法