我的“Messages.properties”文件中有一个属性,它有一个使用数字格式的参数:
my.message=File exceeds {0,number,0.0}MB.
当我运行 gwt:i18n Maven 目标时,它会根据我的“Messages.properties”文件中的属性生成一个Messages 接口(interface)(与正常情况一样):
public interface Messages extends com.google.gwt.i18n.client.Messages {
//...
@DefaultMessage("File exceeds {0,number,0.0}MB.")
@Key("my.message")
String my_message(String arg0);
//...
}
问题是方法参数是一个String。当我运行该应用程序时,它给我一个错误,因为消息参数需要一个数字,但提供了一个字符串(错误消息是“只有数字子类可以格式化为数字”)。
如何配置 Maven 使其将此参数更改为数字(如 float 或 Number)?谢谢。
最佳答案
鉴于上述讨论,我决定补充我之前的回答。 首先,据我所知,您无法使用现有的 i18n Maven 目标(和 GWT 的 I18NCreator)来执行要求的操作。 其次,在对我建议的生成器解决方案进行更多研究后,我发现:
就个人而言,我只会编写和维护我的属性文件和手动镜像它的界面。 Generator 总是会查看属性文件并生成属性对应的方法(根据实际消息需要任何参数),因此如果您编写的接口(interface)反射(reflect)了属性文件,Generator 生成的类将始终正确实现。
关于java - GWT Maven 插件 : Generating non-String parameters in the Messages class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7854403/