在我的java项目中,我在messages.properties
文件上有一堆外部化的字符串。在其各自的Messages.java
文件中,我具有相同数量的公共静态字符串类型属性,因此我可以访问这些外部化文本。
然后,我实现了一个名为getString
的方法,它接收常量的名称作为其参数,并返回所需的文本。这样,就不需要在Messages.java
文件中声明所有公共静态字符串类型属性。
但在执行此操作后,我的日志中充满了“ NLS未使用的消息”消息。
您知道是否有办法阻止记录这些警告信息?
提前致谢。
答案 0 :(得分:5)
您的Messages
课程 - 听起来像是org.eclipse.osgi.util.NLS
。{/ p>
如果是这种情况,它的目的是满足要求:
即。 NLS使用在messages.properties中找到的Message.staticVariable
的值填充staticVariable
的值。
警告日志记录提供有关Messages.java
和messages.properties
文件不匹配的信息。
您的getString()
方法听起来好像没有使用NLS的任何优势,正如其他人所建议的那样,您可能最好使用ResourceBundle。
答案 1 :(得分:3)
消息听起来像你写的一个类,因为我没有在我的JDK 6 javadocs中看到它。
听起来你已经尝试重新发明java.util.ResourceBundle。我建议使用它而放弃你的课程。它具有正确处理I18N的附加优势。
我认为在类中对公共静态消息密钥进行硬编码没有任何价值。这是你必须要维护的另一件事。如果我理解你正在做什么,我会扔掉你的消息并改用ResourceBundle。
答案 2 :(得分:0)