Cuál es el medio método de firma? Valor de la cadena () predeterminado "";

Bibek Kr. Bazaz:

Me encontré con esta firma de método en la interfaz de componente de muelle.

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Indexed
public @interface Component 
{
   String value() default "";
}

¿Qué es el método de firma String value() default "";medios? ¿Cómo y Cuándo se debe definir como la sintaxis de codificación para nuestros propósitos?

Stultuske:

Esta no es una firma de método. esto significa que usted puede pasar una cadena como parámetro para la anotación de componentes, así:

@Component(value = "value")

Si no se especifica un valor de su auto, se usará el valor por defecto "".

Si hubiera sido así:

String value(); // without the default

valor habría sido un parámetro obligatorio. Tratar de utilizar componentes de esta manera:

@Component()

daría lugar a una excepción, ya que usted no proporcionó un valor.

EDIT: cuándo utilizar.

Si usted no sabe mucho acerca de esta sintaxis, o anotaciones en general, no debe usarlos. Sobre todo lo que se pueda hacer uso de anotaciones, especialmente a medida queridos, también se puede hacer sin anotaciones.

Digamos que desea crear una anotación para validar el valor de un campo. Voy a usar el ejemplo de los códigos postales belgas. Todos ellos son 4 dígitos, y tienen entre 1000 y 9999.

@Target( {ElementType.FIELD})
@Retention( RetentionPolicy.RUNTIME)
@Constraint( validatedBy = ValidatePostalCodeImpl.class)
public @interface ValidatePostalCode{
  String message() default "You have entered an invalid postal code";
  Class<?>[] groups() default {}; // needed for the validation
  Class<? extends Payload>[] payload() default{}; // needed for the validation

  int maxValue() default 9999; // so, by default, this will validate based
  int minValue() default 1000; // on these values, but you will be able to 
  // override these
}

/ * * Validación de aplicación /

public class ValidatePostalCodeImpl implements ConstraintValidator<ValidatePostalCode, Integer> {

    int upperValue;
    int lowerValue;

    @Override
    public void initialize(ValidatePostalCode validate) {
        this.upperValue = validate.maxValue(); // here you call them as if they indeed were regular methods
        this.lowerValue = validate.minValue();
    }

    @Override
    public boolean isValid(Integer integer, ConstraintValidatorContext context) {
        return integer >= lowerValue && integer <= upperValue;
    }

}

/ * * Uso /

@Entity
@Table(name = "addresses")
public class Addresses {

  // home address -> In Belgium, so has to be between the default values:
  @ValidatePostalCode
  Integer belgianPostalCode;

  // vacation home in another country, let's say the PC's there are between
  // 12000 and 50000
  @ValidatePostalCode(minValue = 12000, maxValue = 50000)
  Integer foreignPostalCode;

}

Sin duda, este es un ejemplo muy limitado, pero debe tener una idea.

Supongo que te gusta

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