¿Cómo hacer caso omiso de anotación cuando se genera Getter?

Ofek Regev:

He creado un generador de Getter sencilla para generar un "Opcional-Getter" que envuelve el campo dentro de un facultativo. el problema es cuando el campo es anotar como @Nullable también genera el captador con @Nullable y encontró que muy molesto para quitar simplemente cada vez que estoy generando un captador. ¿Cómo puedo ignorar la anotación de campo en un captador de disfraces?

Este es mi generador "Opcional-Getter".

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

y eso es el resultado ahora cuando estoy generando un captador -

public class Class {
    @Nullable
    private String someMember;


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

ese es el resultado esperado -

public class Class {
    @Nullable
    private String someMember;



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

Obtener el plugin CodeGenerator , a través de su GitHub Repository > Releases.
La última es relase1.3.3

Instalar el plugin "del disco", vuelva a iniciar IntelliJ / Android de estudio, a continuación, a través de Settings > CodeGenerator, modificar el valor por defecto Getter and Setterplantilla con este código, y permitir que

#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 

Puede que usarlo a través de Alt+ins(o Code > Generate)

introducir descripción de la imagen aquí

Personalizar las plantillas, según sea necesario, o añadir otras nuevas. Disfrutar;)


Eso es algo que estaba viendo demasiado para IDEA. En realidad desde hace mucho tiempo. Por desgracia, a partir de ahora no parece ser parametrizable.

Esta es la cuestión YouTrack que hizo disponible la inserción automática de @Nullabley @NotNulla getters / setters generados

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

Usted puede votar por una característica que convierte automáticamente a un Optional<T>comprador, siempre que sea posible

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

Y se puede votar a favor de la característica que expone las anotaciones a la plantilla de Apache Velocity

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

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=190228&siteId=1
Recomendado
Clasificación