Java
1public @interface CharCodeEx{ 2 3@OverridesAttribute(constraint = WithinCodePoints.class.name = "Message") 4String message() default "{MSG-COM}" 5}
上記のコードがどういう処理をしているのかがわかりません。
@OverridesAttributeが構成する制約の属性をオーバーライドするものとしてマークするものと
いうことは上記はmessage()のメッセージメソッドの初期値を "{MSG-COM}"として設定するという
処理とは違いますか?
教えて頂きたいです。
上記は実行しておりませんが、コードがわからなかったため、質問しました。
上記コードは下記のコードのように独自のバリデーションのソースだったのですが、
下記のコードのように独自のバリデーションを作成したいです。
「年齢」の制限を規定したい場合、@Constraint(validatedBy = {「年齢」の制限を規定するクラス})を作成し、
@Constraintで実行したいクラスを呼び出す流れでまちがいないでしょうか?
Java
1「年齢」の制限を規定する@Ageアノテーションの実装例 2 3package com.example.sample.domain.validation; 4 5import java.lang.annotation.Documented; 6import java.lang.annotation.Retention; 7import java.lang.annotation.Target; 8import javax.validation.Constraint; 9import javax.validation.Payload; 10import javax.validation.ReportAsSingleViolation; 11import javax.validation.constraints.Max; 12import javax.validation.constraints.Min; 13 14import static java.lang.annotation.ElementType.ANNOTATION_TYPE; 15import static java.lang.annotation.ElementType.CONSTRUCTOR; 16import static java.lang.annotation.ElementType.FIELD; 17import static java.lang.annotation.ElementType.METHOD; 18import static java.lang.annotation.ElementType.PARAMETER; 19import static java.lang.annotation.RetentionPolicy.RUNTIME; 20 21@Documented 22@Constraint(validatedBy = {}) 23@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER }) 24@Retention(RUNTIME) 25@ReportAsSingleViolation 26@Min(1) 27@Max(150) 28public @interface Age { 29 String message() default "{com.example.sample.domain.validation.Age.message}"; 30 31 Class<?>[] groups() default {}; 32 33 Class<? extends Payload>[] payload() default {}; 34 35 @Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER }) 36 @Retention(RUNTIME) 37 @Documented 38 public @interface List { 39 Age[] value(); 40 } 41}
あなたの回答
tips
プレビュー