eclipse中形如$NON-NLS-1$注释的含义

原创 2004年07月21日 13:11:00

刚刚接触eclipse时,经常在官方的例子中看到一些奇怪的注释,例如:shell.setText(Messages.getString("TestRef.hello")); //$NON-NLS-1$
这$NON-NLS-1$到底代表什么呢?当时在一阵浅尝辄止之后,也就忽略了这个问题,今天在阅读Rich Client Tutorial Part 2时,意外的发现了这行注释的真实含义……
^_^真是意外中的收获。

这实际与eclipse中支持i18n的一种方式,eclipse的标准结构,将所有string常量定义到.properties中,例如上面程序段中的TestRef.hello实际上是.properties中的一个key   TestRef.hello=Hello

现在大家也许对注释$NON-NLS-1$的含义就能够猜到个大概了,我个人猜测他也许就是non need localize string 1的缩写。rcp的文档里是这样表述的The string $NON-NLS-1$ is a hint for both the compiler and the Externalization wizard that the first character string on this line is a tag or keyword of some sort and should not be localized. 也就是说$NON-NLS-1$表明本行的第一个string型变量是一个标签或者关键字,不需要被本地化

TestRef.java

public class TestRef {                                
 public static void main(String[] args) {        
  Shell shell =new Shell();                          
  shell.setText(Messages.getString("TestRef.hello")); //$NON-NLS-1$               
 }
               

Messages.java

public class Messages {                                      
 private static final String BUNDLE_NAME = "test";//$NON-NLS-1$                                                     
 private static final ResourceBundle                       RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);                              
 private Messages() {                                                     
 }                                                                     
 public static String getString(String key) {            
  try {                                                               
   return RESOURCE_BUNDLE.getString(key);         
  } catch (MissingResourceException e) {              
   return '!' + key + '!';                                       
  }                                                                   
 }                                                                    
}

test.properties

TestRef.hello=Hello                                          

【我的Android进阶之旅】Android 源代码中的Java代码中//$NON-NLS-1$ 注释是什么意思?

1、背景最近在负责公司基础业务和移动基础设施的开发工作,正在负责Lint代码静态检查工作。因此编写了自定义的Lint规则,在编写自定义的Lint规则前,当然是需要去把Google的关于Lint检测的源...
  • qq446282412
  • qq446282412
  • 2017年09月12日 10:34
  • 542

Eclipse中字符串后面的//$NON-NLS-1$作用

Eclipse 如果每行代码里有这个字符串:$NON-NLS-1$ 表示:这一行的第一个字符串是不需要国际化的。同理$NON-NLS-2$,$NON-NLS-3$.... 使用工具自动扫描代码里的...
  • soszou
  • soszou
  • 2012年08月11日 20:06
  • 2074

【不错】浅析Oracle三层全球化支持(NLS)

浅析Oracle三层全球化支持(NLS) (2012-11-08 15:03:16) 转载▼ 标签: 杂谈 分类:oracle 作为一个成熟的商业数据库软件,Oracle对全球...
  • haiross
  • haiross
  • 2014年05月07日 15:17
  • 752

Eclipse 的快捷键以及文档注释、多行注释的快捷键

原文地址:http://my.oschina.net/u/590763/blog/70166 一、多行注释快捷键 1.选中你要加注释的区域,用ctrl+shift+C 或者ctrl+/ 会加上//注...
  • chengly0129
  • chengly0129
  • 2015年10月19日 13:12
  • 36880

如何在Eclipse中如何自动添加注释和自定义注释风格

背景简介丰富的注释和良好的代码规范,对于代码的阅读性和可维护性起着至关重要的作用。几乎每个公司对这的要求还是比较严格的,往往会形成自己的一套编码规范。但是再实施过程中,如果全靠手动完成,不仅效率低下,...
  • changqing5818
  • changqing5818
  • 2016年07月22日 16:37
  • 8818

eclipse 中的注释 快捷键

(1)Ctrl+Space  说明:内容助理。提供对方法,变量,参数,javadoc等得提示,  应运在多种场合,总之需要提示的时候可先按此快捷键。  注:避免输入法的切换设置与此设置冲突 ...
  • wjeson
  • wjeson
  • 2013年06月18日 11:27
  • 160383

Eclipse(MyEclipse)使用技巧——修改注释字体大小

关于MyEclipse与Eclipse如何修改、设置、调整注释字体的大小,使注释的字体大小可以大于代码的字体大小 后话: 对于网上说的,不能不信,也不能全信。没有做不到的,只有想不到的!...
  • zwk626542417
  • zwk626542417
  • 2014年06月26日 17:55
  • 20213

Eclipse 自动生成注释信息

Eclipse 自动生成注释信息 一、概述       程序中良好的文档注释不仅有利于程序的阅读还有利于日后程序开发人员对程序的升级和维护。       我们可以利用 Eclipse 中注释的模版功能...
  • woaittyx
  • woaittyx
  • 2016年11月23日 19:43
  • 440

eclipse中注释出现乱码的情况

http://blog.csdn.net/jianw2007/article/details/3930915 导入开发的工程,打开后发现java源文件的注释变成了乱码 得到了结论: 出现的原因:因为...
  • lizhenmingdirk
  • lizhenmingdirk
  • 2015年10月13日 14:39
  • 3344

如何在Eclipse中如何自动添加注释和自定义注释风格

在无论什么项目中,注释都是不可缺少的,注释的种类和风格非常之多,每个公司有每个公司自己的一套标准,中大型项目一般写注释是为了自动生成文档便于维护,比如Java自带的Javadoc、功能更强大使用更广泛...
  • lanxuezaipiao
  • lanxuezaipiao
  • 2014年03月03日 10:09
  • 9205
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:eclipse中形如$NON-NLS-1$注释的含义
举报原因:
原因补充:

(最多只允许输入30个字)