Rob*_*edy 38
这是一个有效的问题.这种事情在其他语言中是可能的.在C#中,为标识符添加前缀@(如前所述); 在Delphi中,前缀为&.但Java没有提供这样的功能(部分原因是它并不真正需要像.Net世界那样与其他语言定义的标识符进行交互).
严格地说,除非你得到一个不符合Java语言规范的错误编译器实现,否则你不能这样做.
但是,如果有意志,那就有办法了.将以下代码复制到IDE中,将源文件编码切换为UTF-16,然后执行以下操作:
public class HelloWorld {
public static void main(String[] args) {
HelloWorld.n?w();
}
public static void n?w () {
System.out.println("Hello,World");
}
}
Run Code Online (Sandbox Code Playgroud)
此代码是一个格式良好且有效的Java类.但是,正如您所猜测的那样,有一个小技巧:"新"标识符中的"е"字符不属于ASCII字符集,它实际上是一个cyrrilic"е"(prounanced'YE').
当前的Java语言规范明确允许使用Unicode来命名标识符,这一点非常重要.这意味着,如果他们愿意,可以用法语,中文或俄语自由地打电话给她或他的班级.也可以在代码中混合和匹配字母表.从历史上看,拉丁文和其他字母表中的一些字母是相似的.
因此:不,您不能将保留字用作标识符,但您可以使用看起来与保留字完全相同的标识符.
是否有人应该这样做是完全不同的事情.
不,你不能这样做.有关更多信息,请访问JLS第3.8,3.9节
以ASCII字母组成的以下字符序列保留用作关键字,不能用作标识符(§3.8):
Run Code Online (Sandbox Code Playgroud)Keyword: one of abstract continue for new switch assert default if package synchronized boolean do goto private this break double implements protected throw byte else import public throws case enum instanceof return transient catch extends int short try char final interface static void class finally long strictfp volatile const float native super while
| 归档时间: |
|
| 查看次数: |
15519 次 |
| 最近记录: |