IntelliJ 实时模板
InteliJ Live Template
我有一个关于 inteliJ 实时模板的问题,
我的 class 中有一个成员:
@JsonProperty("CA_DL_Active_Carriers_NR_SM_DL_UE1")
private Float caDlActiveCarriersNrSmDlUe1;
我想创建一个 getter 和 setter(自定义 setter),如下所示:
public Float getCaDlActiveCarriersNrSmDlUe1() {
return caDlActiveCarriersNrSmDlUe1;
}
public void setCaDlActiveCarriersNrSmDlUe1(Float caDlActiveCarriersNrSmDlUe1) {
if (Objects.equals(getCaDlActiveCarriersNrSmDlUe1(), caDlActiveCarriersNrSmDlUe1)) {
return;
}
this.caDlActiveCarriersNrSmDlUe1 = caDlActiveCarriersNrSmDlUe1;
if (DocKind.ORIG == docKind) {
((McpttIterationDocument) prepareDirtyDocument()).setCaDlActiveCarriersNrSmDlUe1(caDlActiveCarriersNrSmDlUe1);
}
我为 setter 创建了一个 Live Templeate:
public void set$CAP_SELECTION$(java.lang.Float $SELECTION$) {
if (java.util.Objects.equals(get$CAP_SELECTION$, $SELECTION$)) {
return;
}
this.$SELECTION$ = $SELECTION$;
if (com.att.tlv.arc.backend.api.persistence.documents.BaseDocument.DocKind.ORIG == docKind) {
(($CLASSNAME$) prepareDirtyDocument()).set$CAP_SELECTION$($SELECTION$);
}
[![变量设置][1]][1]
[1]: https://i.stack.imgur.com/L4YPN.png
但是当我应用自定义 setter:
时,我的 $CAP_SELECTION$ & $SELECTION$ 是空的
谁能帮我弄清楚我做错了什么?
我还可以突出显示我的成员(双击它)并应用我的 seeter 吗?喜欢点击 "generate" 但不是常规选项 , 我将使用我的实时模板...
要创建自定义 setter,最好使用 Code | Generate
操作。您可以在那里添加自定义 getter 或 setter 模板来创建您想要的方法。
这是要做的事情:
- 在 Mac 上调用
Code | Generate
(⌘+N)
- Select
Getter and Setter
在出现的弹出窗口中
- 单击 Setter 模板下拉菜单后的
...
按钮
- 使用
+
按钮添加新模板
- 添加类似于以下模板文本的内容并为其命名:
#set($paramName = $helper.getParamName($field, $project))
#set($methodSuffix = $StringUtil.capitalizeWithJavaBeanConvention($StringUtil.sanitizeJavaIdentifier($helper.getPropertyName($field, $project))))
#if($field.modifierStatic)
static ##
#end
void set$methodSuffix($field.type $paramName) {
if (java.util.Objects.equals(get$methodSuffix(), $paramName)) {
return;
}
#if ($field.name == $paramName)
#if (!$field.modifierStatic)
this.##
#else
$classname.##
#end
#end
$field.name = $paramName;
if (DocKind.ORIG == docKind) {
((McpttIterationDocument) prepareDirtyDocument()).set$methodSuffix($paramName);
}
}
您可能希望完全限定对 DocKind
和 McpttIterationDocument
的引用。
- 单击模板对话框中的
OK
,然后单击生成 getters 和 setters 对话框中的 OK
结果:一个可重复使用的自定义 setter 模板。
您也可以使用 "Live Template"。
创建 , 属性 , 成员 , 自定义 getter & setter .
打开intelij
点击偏好搜索 "live templates"
单击 +m 并添加您的模板。
使用下面的代码:
@JsonProperty("$SELECTION$")
私人 $ELEMENT_TYPE$ $TOLOWER$;
public $ELEMENT_TYPE$ get$CAP_SELECTION$() {
return $TOLOWER$;
}
public void set$CAP_SELECTION$($ELEMENT_TYPE$ $TOLOWER$) {
if (java.util.Objects.equals(get$CAP_SELECTION$(), $TOLOWER$)) {
return;
}
this.$TOLOWER$ = $TOLOWER$;
if (com.att.tlv.arc.backend.api.persistence.documents.BaseDocument.DocKind.ORIG == docKind) {
(($CLASSNAME$) prepareDirtyDocument()).set$CAP_SELECTION$($TOLOWER$);
}
$END$
使用以下
参见示例:
我有一个关于 inteliJ 实时模板的问题, 我的 class 中有一个成员:
@JsonProperty("CA_DL_Active_Carriers_NR_SM_DL_UE1")
private Float caDlActiveCarriersNrSmDlUe1;
我想创建一个 getter 和 setter(自定义 setter),如下所示:
public Float getCaDlActiveCarriersNrSmDlUe1() {
return caDlActiveCarriersNrSmDlUe1;
}
public void setCaDlActiveCarriersNrSmDlUe1(Float caDlActiveCarriersNrSmDlUe1) {
if (Objects.equals(getCaDlActiveCarriersNrSmDlUe1(), caDlActiveCarriersNrSmDlUe1)) {
return;
}
this.caDlActiveCarriersNrSmDlUe1 = caDlActiveCarriersNrSmDlUe1;
if (DocKind.ORIG == docKind) {
((McpttIterationDocument) prepareDirtyDocument()).setCaDlActiveCarriersNrSmDlUe1(caDlActiveCarriersNrSmDlUe1);
}
我为 setter 创建了一个 Live Templeate:
public void set$CAP_SELECTION$(java.lang.Float $SELECTION$) {
if (java.util.Objects.equals(get$CAP_SELECTION$, $SELECTION$)) {
return;
}
this.$SELECTION$ = $SELECTION$;
if (com.att.tlv.arc.backend.api.persistence.documents.BaseDocument.DocKind.ORIG == docKind) {
(($CLASSNAME$) prepareDirtyDocument()).set$CAP_SELECTION$($SELECTION$);
}
[![变量设置][1]][1]
[1]: https://i.stack.imgur.com/L4YPN.png
但是当我应用自定义 setter:
谁能帮我弄清楚我做错了什么? 我还可以突出显示我的成员(双击它)并应用我的 seeter 吗?喜欢点击 "generate" 但不是常规选项 , 我将使用我的实时模板...
要创建自定义 setter,最好使用 Code | Generate
操作。您可以在那里添加自定义 getter 或 setter 模板来创建您想要的方法。
这是要做的事情:
- 在 Mac 上调用
Code | Generate
(⌘+N) - Select
Getter and Setter
在出现的弹出窗口中 - 单击 Setter 模板下拉菜单后的
...
按钮 - 使用
+
按钮添加新模板 - 添加类似于以下模板文本的内容并为其命名:
#set($paramName = $helper.getParamName($field, $project))
#set($methodSuffix = $StringUtil.capitalizeWithJavaBeanConvention($StringUtil.sanitizeJavaIdentifier($helper.getPropertyName($field, $project))))
#if($field.modifierStatic)
static ##
#end
void set$methodSuffix($field.type $paramName) {
if (java.util.Objects.equals(get$methodSuffix(), $paramName)) {
return;
}
#if ($field.name == $paramName)
#if (!$field.modifierStatic)
this.##
#else
$classname.##
#end
#end
$field.name = $paramName;
if (DocKind.ORIG == docKind) {
((McpttIterationDocument) prepareDirtyDocument()).set$methodSuffix($paramName);
}
}
您可能希望完全限定对 DocKind
和 McpttIterationDocument
的引用。
- 单击模板对话框中的
OK
,然后单击生成 getters 和 setters 对话框中的OK
结果:一个可重复使用的自定义 setter 模板。
您也可以使用 "Live Template"。 创建 , 属性 , 成员 , 自定义 getter & setter .
打开intelij 点击偏好搜索 "live templates" 单击 +m 并添加您的模板。
使用下面的代码:
@JsonProperty("$SELECTION$") 私人 $ELEMENT_TYPE$ $TOLOWER$;
public $ELEMENT_TYPE$ get$CAP_SELECTION$() {
return $TOLOWER$;
}
public void set$CAP_SELECTION$($ELEMENT_TYPE$ $TOLOWER$) {
if (java.util.Objects.equals(get$CAP_SELECTION$(), $TOLOWER$)) {
return;
}
this.$TOLOWER$ = $TOLOWER$;
if (com.att.tlv.arc.backend.api.persistence.documents.BaseDocument.DocKind.ORIG == docKind) {
(($CLASSNAME$) prepareDirtyDocument()).set$CAP_SELECTION$($TOLOWER$);
}
$END$
使用以下
参见示例: