提取硬编码字符串文字
编辑教程提取硬编码字符串文字
启用代码检查以突出显示硬编码字符串文字后,您可以继续将这些文字解压缩到属性文件中。为此,IntelliJ IDEA 提供特殊意图行为 i18nize 硬编码字符串文本。
本节考虑两种访问资源包的可能方法:
使用 java.util.ResourceBundle 实用程序类 | |
---|---|
使用自定义实用工具类 |
使用 java.util.ResourceBundle 提取硬编码字符串文字
tip:您可以跳过此步骤,并在 I18nize 硬编码字符串对话框中立即指定所需的资源包表达式。
指定将用于存储提取的文字的资源包。特别地,您可以将以下语句添加到您的源代码中:
private static ResourceBundle <field name> =
getBundle("<bundle name>");
例如:
private static ResourceBundle myBundle =
getBundle("com.intellij.fontChooser.FontChooser");
单击突出显示的字符串,按 Alt+Enter,并在意图行为列表中选择 i18nize 硬编码字符串:
在"I18nize 硬编码字符串"对话框中指定目标属性文件、属性键和值以及资源包表达式。
如果 ResourceBundle 字段已在源代码中声明(如步骤1所示),则 IntelliJ IDEA 在默认情况下建议它的名称。如果您尚未在源代码中声明此字段,您仍然可以在对话框中立即定义所需的表达式。为此,请在 "资源包表达式" 字段中输入 ResourceBundle 类型的有效表达式。
注意:基本代码完成在该字段中工作。键入类名,并按下 Ctrl+Space ,选择方法:
从建议列表中选择所需的方法,然后再按 Ctrl+Space 一次以填写括号:
之后,在引号中键入包和资源包名称:
点击“确定”。具有硬编码字符串文字的行被替换。例如,如果源代码中已经声明了资源包,则将创建以下行:
如果在对话框中定义了资源包,结果将是:
使用自定义资源包类提取字符串文字
请确保 IntelliJ IDEA 安装下的redist/annotations.jar归档文件被添加到模块依赖关系中。
在项目中创建一个新类,并键入以下代码:
import org.jetbrains.annotations.PropertyKey;
import org.jetbrains.annotations.NonNls;
import java.util.ResourceBundle;
import java.text.MessageFormat;
public class I18nSupport {
@NonNls
private static final ResourceBundle bundle = ResourceBundle.getBundle ("com.intellij.FontChooser");
public static String i18n_str
(@PropertyKey(resourceBundle ="com.intellij.FontChooser")
String key,Object... params){
String value =bundle.getString(key);
if (params.length >0) return MessageFormat.format(value, params);
return value;
}
}
在包含硬编码字符串的类中,单击突出显示的字符串,按 Alt+Enter,并在意图行为列表中选择 i18nize 硬编码字符串文本。该 I18n-ize 字符串文字对话框显示缺少资源包表达式:
点击 "编辑 i18n 模板链接"。在 "文件模板" 对话框中,将 I18nized 表达式更改为指向自定义资源包类的方法:
这个更改是全局性的,并且会影响所有项目!
点击“确定”,保存更新的模板并关闭对话框。
在"I18n-ize 字符串文本" 对话框的 "预览" 部分中,请参阅建议的替换,然后单击 "确定"。源代码更改:
隐藏硬编码字符串
有时你可能想隐藏硬编码的文字。要这样做,使用不需要国际化注释。
按 Alt+Enter 显示字符串文字的意图行为:
从"建议"列表中选择注释为 @NonNls。
在打开的“选择路径”对话框中,指定annotations.xml 文件将被存储的位置 。
或者,您可以添加 @NonNls 注释:
如果您选中该复选框以后不显示此对话框,则您仍然可以在“设置”对话框中选择注释样式(代码样式 |Java 代码生成)。
识别硬编码字符串
您的源代码可以包含您想要识别的硬编码字符串,并进一步提取到属性。要在编辑器中突出显示硬编码的文字,请使用国际化代码检查。
打开 "设置" 对话框。
在项目设置,选择 编辑|检查(Editor | Inspections),打开 检查对话框。
选择所需的配置文件,并找到节点国际化问题。
请注意,您可以配置此检查的严重性,并指定何时应识别硬编码的字符串。例如,您可以选择跳过toString() 方法的内容,或没有字母字符的文字。
检查硬编码字符串选项,这将导致硬编码字符串文字在编辑器中突出显示。
应用更改并关闭对话框。现在编辑器将突出显示硬编码的字符串文字,如下所示:

选择支付方式:



备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间