ゲッターを生成するときに注釈を無視するには?

Ofek Regev:

私はオプションの内部でフィールドをラップ「オプションの-ゲッター」を生成するために、単純なゲッタージェネレータを作成しました。フィールドはゲッターも@Nullableで生成されます@Nullableとして注釈があると私は単にそれを私はゲッターを生成していますたびに削除することは非常に迷惑見つけたときに問題があります。どのように私は衣装ゲッターのフィールド注釈を無視することができますか?

これが私の「オプション・ゲッター」ジェネレータです。

#if($field.modifierStatic)
static ##
#end
Optional<$field.type> ##
#set($name = $StringUtil.capitalizeWithJavaBeanConvention($StringUtil.sanitizeJavaIdentifier($helper.getPropertyName($field, $project))))
#if ($field.boolean && $field.primitive)
  is##
#else
  get##
#end
${name}() {
  return Optional.fromNullable($field.name);
}

私はゲッターを生成していたときに、それが今の結果です -

public class Class {
    @Nullable
    private String someMember;


    @Nullable
    public Optional<String> getSomeMember() {
        return Optional.fromNullable(someMember);
    }
}

それは、予想される結果です -

public class Class {
    @Nullable
    private String someMember;



    public Optional<String> getSomeMember() {
        return Optional.fromNullable(someMember);
    }
}
LppEdd:

プラグインを取得CodeGeneratorを彼らを通じて、GitHub Repository > Releases
最新のrelaseです1.3.3

IntelliJの/ Androidのメーカーは経由して、その後、再起動し、「ディスクから」プラグインをインストールしSettings > CodeGenerator、デフォルトの変更Getter and Setterこのコードのテンプレートを、そして有効

#foreach($field in $fields)
#set($name = $StringUtil.capitalizeWithJavaBeanConvention($StringUtil.sanitizeJavaIdentifier($helper.getPropertyName($field.element, $project))))
#if ($field.boolean && $field.primitive)
#set($getter = "is${name}")
#else
#set($getter = "get${name}")
#end
#set($setter = "set${name}")
#if($field.modifierStatic)
static ##
#end

#if($field.modifierStatic)
static ##
#end
Optional<$field.type> ##
${getter}() {
  return Optional.fromNullable($field.name);
}

#if($field.modifierStatic)
static ##
#end
void ${setter}($field.type $paramName) {
#if ($field.name == $paramName)
    #if (!$field.modifierStatic)
    this.##
    #else
        $classname.##
    #end
#end
$field.name = $paramName;
}
#end 

あなたは経由でそれを使用することができるよりもAlt+ins(またはCode > Generate

ここでは、画像の説明を入力します。

必要に応じて、テンプレートをカスタマイズしたり、新しいものを追加します。楽しい ;)


何かことを私はあまりにもIDEAのために見ていました。実際には、長い時間以来。残念ながら、今のように、パラメータ化していないようです。

これは、利用可能な自動挿入作らYouTrackの問題であり@Nullable、および@NotNull生成されたゲッター/セッターへの

https://youtrack.jetbrains.net/issue/IDEA-30683

あなたは自動的に変換します機能のために投票することができますOptional<T>ことができ、ゲッター

https://youtrack.jetbrains.net/issue/IDEA-201804

そして、あなたは、Apache Velocityテンプレートに注釈を公開する機能のために投票することができます

https://youtrack.jetbrains.net/issue/IDEA-176763

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=190222&siteId=1