<legend id='4JfOS'><style id='4JfOS'><dir id='4JfOS'><q id='4JfOS'></q></dir></style></legend>
  • <i id='4JfOS'><tr id='4JfOS'><dt id='4JfOS'><q id='4JfOS'><span id='4JfOS'><b id='4JfOS'><form id='4JfOS'><ins id='4JfOS'></ins><ul id='4JfOS'></ul><sub id='4JfOS'></sub></form><legend id='4JfOS'></legend><bdo id='4JfOS'><pre id='4JfOS'><center id='4JfOS'></center></pre></bdo></b><th id='4JfOS'></th></span></q></dt></tr></i><div id='4JfOS'><tfoot id='4JfOS'></tfoot><dl id='4JfOS'><fieldset id='4JfOS'></fieldset></dl></div>

    <small id='4JfOS'></small><noframes id='4JfOS'>

          <bdo id='4JfOS'></bdo><ul id='4JfOS'></ul>
      1. <tfoot id='4JfOS'></tfoot>

      2. 使用枚举值和注解的 Java 字符串验证

        时间:2023-07-26
      3. <i id='TvZOo'><tr id='TvZOo'><dt id='TvZOo'><q id='TvZOo'><span id='TvZOo'><b id='TvZOo'><form id='TvZOo'><ins id='TvZOo'></ins><ul id='TvZOo'></ul><sub id='TvZOo'></sub></form><legend id='TvZOo'></legend><bdo id='TvZOo'><pre id='TvZOo'><center id='TvZOo'></center></pre></bdo></b><th id='TvZOo'></th></span></q></dt></tr></i><div id='TvZOo'><tfoot id='TvZOo'></tfoot><dl id='TvZOo'><fieldset id='TvZOo'></fieldset></dl></div>

              <legend id='TvZOo'><style id='TvZOo'><dir id='TvZOo'><q id='TvZOo'></q></dir></style></legend>
              <tfoot id='TvZOo'></tfoot>

                  <tbody id='TvZOo'></tbody>

                <small id='TvZOo'></small><noframes id='TvZOo'>

                • <bdo id='TvZOo'></bdo><ul id='TvZOo'></ul>
                  本文介绍了使用枚举值和注解的 Java 字符串验证的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  我想使用注释针对一组值验证字符串.

                  I want to validate a string against a set of values using annotations.

                  我想要的基本上是这样的:

                  What I want is basically this:

                  @ValidateString(enumClass=com.co.enum)
                  String dataType;
                  
                  int maxValue;
                  int minValue;
                  int precision;
                  

                  @ValidateString(values={"String","Boolean", "Integer"})
                  String dataType;
                  
                  int maxValue;
                  int minValue;
                  int precision;
                  


                  我还想根据 dataType 中设置的值对其他变量进行一些验证:


                  I also want to do some validation on other variables depending upon the value set in dataType:

                  if (dataType = "String") {
                      // maxValue, minValue, precision all should be null or zero
                  }
                  


                  我想不出通过自定义注释来实现这一点的方法.
                  有人请帮帮我.


                  I can't think of a way to achieve this by custom annotations.
                  Somebody please help me.

                  推荐答案

                  这就是我所做的.

                  注释

                  public @interface ValidateString {
                  
                      String[] acceptedValues();
                  
                      String message() default "{uk.dds.ideskos.validator.ValidateString.message}";
                  
                      Class<?>[] groups() default { };
                  
                      Class<? extends Payload>[] payload() default { }; 
                  }
                  

                  验证类

                  public class StringValidator implements ConstraintValidator<ValidateString, String>{
                  
                      private List<String> valueList;
                  
                      @Override
                      public void initialize(ValidateString constraintAnnotation) {
                          valueList = new ArrayList<String>();
                          for(String val : constraintAnnotation.acceptedValues()) {
                              valueList.add(val.toUpperCase());
                          }
                      }
                  
                      @Override
                      public boolean isValid(String value, ConstraintValidatorContext context) {
                          return valueList.contains(value.toUpperCase());
                      }
                  
                  }
                  

                  我用它喜欢

                  @ValidateString(acceptedValues={"Integer", "String"}, message="Invalid dataType")
                  String dataType;
                  
                  Long maxValue;
                  Long minValue;
                  

                  现在我需要弄清楚如何实现条件检查IE.如果是字符串,那么 maxValue 和 minValue 应该为 null 或零..

                  Now I need to figure out how to implement conditional check ie. if String then maxValue and minValue should be null or Zero..

                  有什么想法吗?

                  这篇关于使用枚举值和注解的 Java 字符串验证的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:一个元素上有多个相同类型的注释? 下一篇:什么是默认注释处理器发现过程?

                  相关文章

                  最新文章

                  1. <i id='YBNL9'><tr id='YBNL9'><dt id='YBNL9'><q id='YBNL9'><span id='YBNL9'><b id='YBNL9'><form id='YBNL9'><ins id='YBNL9'></ins><ul id='YBNL9'></ul><sub id='YBNL9'></sub></form><legend id='YBNL9'></legend><bdo id='YBNL9'><pre id='YBNL9'><center id='YBNL9'></center></pre></bdo></b><th id='YBNL9'></th></span></q></dt></tr></i><div id='YBNL9'><tfoot id='YBNL9'></tfoot><dl id='YBNL9'><fieldset id='YBNL9'></fieldset></dl></div>
                    • <bdo id='YBNL9'></bdo><ul id='YBNL9'></ul>
                    <legend id='YBNL9'><style id='YBNL9'><dir id='YBNL9'><q id='YBNL9'></q></dir></style></legend>
                  2. <tfoot id='YBNL9'></tfoot>

                    1. <small id='YBNL9'></small><noframes id='YBNL9'>