簡體   English   中英

如何使用 javax 的 ConstraintValidator 對非字符串值進行自定義驗證?

[英]How do I carry out custom validation of non-String value with javax's ConstraintValidator?

在嘗試使用 javax 創建自定義驗證時出現編譯錯誤,這向我表明只能以自定義方式驗證字符串值。 讓我解釋一下:如果我嘗試提供 ConstraintValidator 的實現,並且 @Override isValid,將 String 作為其第一個參數,則編譯器不會有任何抱怨。

但是,如果我嘗試相同的方法,將自定義 object 作為第一個參數,我會從編譯器那里收到以下投訴: Method does not override method from its superclass

代碼:

public class PersonConstraint implements ConstraintValidator<Custom, String> {

    @Override
    public void initialize(Custom constraintAnnotation) {
        ConstraintValidator.super.initialize(constraintAnnotation);
    }

    @Override
    public boolean isValid(CustomerResource value, ConstraintValidatorContext context) {
        //some code.
        return false;
    }
}

是什么賦予了? 或者我不明白什么?

事實證明,我需要在創建 class 時提前規定參數類型。#generics

public class PersonConstraint implements ConstraintValidator<Custom, CustomerResource> {

    @Override
    public void initialize(Custom constraintAnnotation) {
        ConstraintValidator.super.initialize(constraintAnnotation);
    }


    @Override
    public boolean isValid(CustomerResource value, ConstraintValidatorContext context) {
        //some code.
        return false;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM