idea java 字符编码设置_IntelliJ IDEA硬编码字符串

IntelliJ IDEA 提取硬编码字符串文字

启用代码检查以突出显示硬编码字符串文字后,您可以继续将这些文字解压缩到属性文件中。为此,IntelliJ IDEA 提供特殊意图行为 i18nize 硬编码字符串文本。

本节考虑两种访问资源包的可能方法:

使用 java.util.ResourceBundle 实用程序类

使用自定义实用工具类

使用 java.util.ResourceBundle 提取硬编码字符串文字tip:您可以跳过此步骤,并在 I18nize 硬编码字符串对话框中立即指定所需的资源包表达式。

指定将用于存储提取的文字的资源包。特别地,您可以将以下语句添加到您的源代码中:

private static ResourceBundle =

getBundle("");

例如:

private static ResourceBundle myBundle =

getBundle("com.intellij.fontChooser.FontChooser");

单击突出显示的字符串,按 Alt+Enter,并在意图行为列表中选择 i18nize 硬编码字符串:

4608e784e2e480d1f020bdb0e2d59893.png

在"I18nize 硬编码字符串"对话框中指定目标属性文件、属性键和值以及资源包表达式。

如果 ResourceBundle 字段已在源代码中声明(如步骤1所示),则 IntelliJ IDEA 在默认情况下建议它的名称。如果您尚未在源代码中声明此字段,您仍然可以在对话框中立即定义所需的表达式。为此,请在 "资源包表达式" 字段中输入 ResourceBundle 类型的有效表达式。

注意:基本代码完成在该字段中工作。键入类名,并按下 Ctrl+Space ,选择方法:

0514922bece61333f43bf9cb999fd111.png

从建议列表中选择所需的方法,然后再按 Ctrl+Space 一次以填写括号:

2389cfe79734eda05c69a22e16d6e078.png

之后,在引号中键入包和资源包名称:

98548a09f28c78db16ec1d41d9da17d4.png

点击“确定”。具有硬编码字符串文字的行被替换。例如,如果源代码中已经声明了资源包,则将创建以下行:

b899c69300fbf3384ef1b115bed9d708.png

如果在对话框中定义了资源包,结果将是:

61528e595a04e46c88189de9d97c750b.png

使用自定义资源包类提取字符串文字

请确保 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 字符串文字对话框显示缺少资源包表达式:

db01b94973ccd34e52b810e153babdc8.png

点击 "编辑 i18n 模板链接"。在 "文件模板" 对话框中,将 I18nized 表达式更改为指向自定义资源包类的方法:这个更改是全局性的,并且会影响所有项目!

720f675eb14c172293b4df61cb4ebf14.png

点击“确定”,保存更新的模板并关闭对话框。

在"I18n-ize 字符串文本" 对话框的 "预览" 部分中,请参阅建议的替换,然后单击 "确定"。源代码更改:

8f33572c45dcce4e8d5e3be4192f63d6.png

隐藏硬编码字符串

有时你可能想隐藏硬编码的文字。要这样做,使用不需要国际化注释。

按 Alt+Enter 显示字符串文字的意图行为:

a7263129670c756ea0e16ff05b9abe71.png

从"建议"列表中选择注释为 @NonNls。

在打开的“选择路径”对话框中,指定annotations.xml 文件将被存储的位置 。

或者,您可以添加 @NonNls 注释:

5b8575e867f016fed2736bba4bd17962.png

如果您选中该复选框以后不显示此对话框,则您仍然可以在“设置”对话框中选择注释样式(代码样式 |Java 代码生成)。

识别硬编码字符串

您的源代码可以包含您想要识别的硬编码字符串,并进一步提取到属性。要在编辑器中突出显示硬编码的文字,请使用国际化代码检查。

打开 "设置" 对话框。

在项目设置,选择

编辑|检查(Editor | Inspections),打开

检查对话框。

选择所需的配置文件,并找到节点国际化问题。

请注意,您可以配置此检查的严重性,并指定何时应识别硬编码的字符串。例如,您可以选择跳过toString() 方法的内容,或没有字母字符的文字。检查硬编码字符串选项,这将导致硬编码字符串文字在编辑器中突出显示。

应用更改并关闭对话框。现在编辑器将突出显示硬编码的字符串文字,如下所示:

0fca3ec2728e1908b55ca0f40449cda1.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值