小编And*_*rey的帖子

Scala方式来编程一堆if

我开始使用scala,并尝试应用功能方式,但我出来了一堆嵌套if\else结构很难读,我想知道有更好的方法来编程这样的东西?例如,我写了脚本,执行括号平衡

def balance(chars: List[Char]): Boolean = {
    def checkParentesys(chars: List[Char], parentesis: List[Char]): Boolean =
      if (chars.isEmpty && parentesis.isEmpty)
        true
      else
        if (chars.head == '(')
            checkParentesys(chars.tail, '(' :: parentesis)
        else
            if (parentesis.isEmpty)
                false
            else
                checkParentesys(chars.tail, parentesis.tail)

    checkParentesys(chars.filter(s => s == '(' || s == ')'), List())
  }
Run Code Online (Sandbox Code Playgroud)

你能建议,我怎样才能把它写得更实用,更像scala?

functional-programming scala

16
推荐指数
2
解决办法
7889
查看次数

更好的是:getSingleResult或getResultList JPA

我需要从表中检索单行,我感兴趣的是哪种方法更好.一方面getSingleResult是为了检索单个结果而设计的,但它会引发异常.请问这种方法在性能与效益getResultList

query.setFirstResult(0);
query.setMaxResults(1); 
Run Code Online (Sandbox Code Playgroud)

jpa

11
推荐指数
2
解决办法
2万
查看次数

JSR 303自定义约束覆盖

我想在字段(本例中是字符串)上放置一组标准约束(如非空字母数字字符串,长度为3到240个字符),并且想要知道是否有一种方法可以覆盖模型代码中的某些约束.这也将是一个重写,或者只是对覆盖注释进行两次验证?

它应该是这样的

@AlphanumericString
@Size(min=100, max=150) //override standart values from AlphanumericString annotation
Run Code Online (Sandbox Code Playgroud)

谢谢你的回答

好的,回答我自己.@OverridesParameter有助于重新分配嵌套的注释参数

@Numerical
@Size //arbitrary parameter values
@ConstraintValidator(FrenchZipcodeValidator.class)
@Documented
@Target({ANNOTATION_TYPE, METHOD, FIELD})
@Retention(RUNTIME)
public @interface FrenchZipCode {
    String message() default "Wrong zipcode";
    String[] groups() default {};

    @OverridesParameters( {
        @OverridesParameter(constraint=Size.class, parameter="min")
        @OverridesParameter(constraint=Size.class, parameter="max") } )
    int size() default 5;

    @OverridesParameter(constraint=Size.class, parameter="message")
    String sizeMessage() default "{error.zipcode.size}";

    @OverridesParameter(constraint=Numerical.class, parameter="message")
    String numericalMessage() default "{error.zipcode.numerical}";
}
Run Code Online (Sandbox Code Playgroud)

资源

java validation bean-validation

7
推荐指数
1
解决办法
2726
查看次数