有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

nls如何避免java项目上不需要的日志消息?

在我的java项目中,我在一个messages.properties文件中外部化了一堆字符串。在其各自的Messages.java文件中,我拥有相同数量的公共静态字符串类型属性,因此我可以访问这些外部化文本

然后,我实现了一个名为getString的方法,它接收常量的名称作为参数,并返回所需的文本。这样,就不需要在Messages.java文件中声明所有公共静态字符串类型的属性

但这样做之后,我的日志中充满了“NLS unused message”消息

你知道有没有办法防止这些警告信息被记录下来吗

提前谢谢


共 (1) 个答案

  1. # 1 楼答案

    你的Messages类——听起来像是扩展了org.eclipse.osgi.util.NLS

    如果是这种情况,其设计旨在满足以下要求:

    • 提供编译时检查消息是否存在
    • 避免同时包含键和值的映射的内存使用(在资源包方法中就是这种情况)
    • 很好的i18n支持

    也就是说,NLS用在消息中找到的staticVariable的值填充Message.staticVariable的值。财产

    警告日志记录提供了有关Messages.javamessages.properties文件不匹配的信息

    你的getString()方法听起来好像没有使用NLS的任何优点,所以正如其他人所建议的,你最好使用ResourceBundle