我对inteliJ实时模板有疑问, 我班上有一个成员:
@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);
}
我为二传手创建了一个现场神庙:
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
但是当我使用自定义设置程序时,我的$ CAP_SELECTION $和$ SELECTION $为空:
有人能帮助我理解我做错了什么吗? 我还可以突出显示我的成员(双击它)并应用我的种子吗?就像点击“生成”但插入常规选项一样,我将使用实时模板...
答案 0 :(得分:0)
要创建自定义设置器,最好使用Code | Generate
操作。您可以在此处添加自定义getter或setter模板,以创建所需的方法。
这是做什么:
Code | Generate
(在Mac上为⌘ + N )Getter and 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
,然后在“生成吸气剂和设置器”对话框中单击OK
结果:可重用的自定义设置器模板。
答案 1 :(得分:0)
您还可以使用“实时模板”。 创建,属性,成员,自定义getter和setter。
打开intelij 单击prefrencess搜索“实时模板” 点击+ 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$
请参阅示例: