我有相当多的源文件需要解析和提取所有字符串文字并将它们作为旧 java 常量放入文件中。
例如:
Label l = new Label("Cat");
会变成:
Label l = new Label(Constants.CAT);
在 Constants.java
中我会:
public final static String CAT = "Cat";
我不想将字符串外化到属性文本文件中。
原因之一是一致性和代码可读性。
另一种是我们的客户端代码使用了GWT
,不支持Java属性文本文件机制。
我可以编写某种解析器(也许使用 ant 替换任务)?
但我想知道 IDE
是否已经自动执行此类操作。
最佳答案
Eclipse 会自动执行此操作。右键单击该文件,选择“源”,然后选择“外部化字符串”
这并没有完全按照您的要求进行(将 Constants.java 文件中的字符串作为字符串),但所使用的方法确实非常强大。它将它们移动到一个属性文件中,该文件可以根据您的语言环境动态加载。按照您的建议将它们放在单独的 Java 源文件中意味着您将在您的应用程序中同时拥有所有语言,或者您将根据语言环境发布不同的应用程序。
我们将它用于我们的应用程序,其中即使是基本的东西也必须以英语和日语发布 - 我们更复杂的应用程序以 12 种语言发布 - 无论如何我们都不是一家小型软件开发公司 :-)。
如果您确实想要将它们放在 Java 文件中,尽管存在已经提到的缺点,编写一个程序将属性文件变形为 Java 源文件比尝试和尝试要容易得多从自由格式的 Java 源代码中提取字符串。
然后您需要做的就是修改 Accessor 类以使用内置字符串(在单独的类中),而不是在运行时加载它们。
关于java - 从java项目中提取所有字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/160382/