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:09
  • 957

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

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

ora-12705:无法访问NLS数据文件,或者指定的环境无效

以前写过plsqldev & instant client搭配的安装方法,今天又遇到新问题,在帮客户升级的时候,发现不能用plsqldev,在登录时报一个空白的错。上网查得是oracle安装得不好。没...
  • sunny_lv
  • sunny_lv
  • 2017-09-26 09:33:24
  • 2092

eclipse使用大全

基本设置部分: 1、设置代码的字体类型和大小: Window -> Preferences -> General -> Appearance -> Content Assist -> Colors...
  • wl4066261
  • wl4066261
  • 2016-12-20 00:08:24
  • 4459

Eclipse报错之://$NON-NLS$

============================================================================================ 具休错误: ...
  • yjtgod
  • yjtgod
  • 2013-09-06 01:05:41
  • 1368

eclipse设置自动注释的@author的值 ${user}变量

在使用eclipse增加注释时,${user}默认是Administrator,如果想改成自己的名字,如下图,有三种方式。 方法一:修改Eclipse 启动参数  在Eclipse启动时加入启...
  • gnail_oug
  • gnail_oug
  • 2015-07-18 22:10:23
  • 6531

白话空间统计二十四:地理加权回归(二)

六千多字的大篇……诚意满满啊…… 橘生淮南则为橘,生于淮北则为枳,叶徒相似,其实味不同。所以然者何?水土异也。——《晏子春秋·内篇杂下》 水土不服、南北差异,(包括地域歧视)是自古以来的一个大命题...
  • allenlu2008
  • allenlu2008
  • 2017-03-05 19:29:46
  • 7031

喝低脂奶可防心脏病

当人们感到牛奶的“面孔”和口味千篇一律的时候,众多营养型、功能型牛奶正悄然走向市场。但主妇们站在琳琅满目的牛奶柜台前,五花八门的包装、花样翻新的概念,却总让她们“雾里看花”,究竟哪种更适合家人呢?中国...
  • itbright
  • itbright
  • 2008-07-04 17:49:00
  • 558

oracle11g OCP 认证 1Z0-053考试笔记2

102.Examine the following values of the initialization parameters in the database having the SID ORC...
  • wlbzy
  • wlbzy
  • 2016-11-24 16:11:02
  • 3768
收藏助手
不良信息举报
您举报文章:eclipse中形如$NON-NLS-1$注释的含义
举报原因:
原因补充:

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