Is there an beautiful way to assert pre-conditions in Java methods?

后端 未结 8 2188
慢半拍i
慢半拍i 2021-01-02 02:08

A lot of my functions have a whole load of validation code just below the declarations:

if ( ! (start < end) ) {
    throw new IllegalStateException( \"S         


        
8条回答
  •  清歌不尽
    2021-01-02 02:46

    Guava's Preconditions class is just for this. You typically use it with static imports, so your example would look like:

    checkArgument(start < end, "Start must be before end");
    

    It makes it easy to add more information to the message as well, without paying the cost of String concatenation if the check passes.

    checkArgument(start < end, "Start (%s) must be before end (%s)", start, end);
    

    Unlike assert statements, these can't be disabled.

提交回复
热议问题