InteliJ Живой Шаблон - PullRequest
       57

InteliJ Живой Шаблон

0 голосов
/ 11 ноября 2019

У меня есть вопрос, касающийся живого шаблона inteliJ, в моем классе есть член:

@JsonProperty("CA_DL_Active_Carriers_NR_SM_DL_UE1")
    private Float caDlActiveCarriersNrSmDlUe1;

, и я хотел бы создать геттер и сеттер (пользовательский сеттер) следующим образом:

  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);
        }

я создал 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$);
        }

[! [Var settings] [1]] [1] [1]: https://i.stack.imgur.com/L4YPN.png
но мой $ CAP_SELECTION$ & $ SELECTION $ пустые, когда я применяю пользовательский установщик:

Может кто-нибудь помочь мне понять, что я делаю неправильно? также я могу выделить своего члена (дважды щелкнуть по нему) и применить мой виджет? например, нажать «создать», но вместо обычной опции ,, я буду использовать свой живой шаблон ...

Ответы [ 2 ]

0 голосов
/ 14 ноября 2019

Вы также можете использовать «Живой шаблон». чтобы создать, свойство, член, пользовательский метод получения и установки.

open intelij нажмите на предварительном поиске «живые шаблоны», нажмите + m и добавьте свой шаблон.

используйте следующий код ниже:

@ JsonProperty ("$ SELECTION $") private $ 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$

Используйте следующие variables settings

см. Пример:

example

example2

0 голосов
/ 11 ноября 2019

Для создания пользовательского сеттера лучше использовать действие Code | Generate. Вы можете добавить пользовательские шаблоны получения или установки для создания того метода, который вам нужен.

Вот что нужно сделать:

  1. Invoke Code | Generate ( + N на Mac)
  2. ВыбратьGetter and Setter в появившемся всплывающем окне
  3. Нажмите кнопку ... после выпадающего шаблона Setter
  4. Добавьте новый шаблон с помощью кнопки +
  5. Добавьте что-нибудькак следующий текст шаблона и дать ему имя:
#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 в диалоговом окне создания геттеров и сеттеров

Результат: повторно используемый шаблон сеттера.

...