大于和小于一个陈述

lis*_*sak 17 java operators

我在想,你有一个干净利落的方法吗?

if(orderBean.getFiles().size() > 0  && orderBean.getFiles().size() < 5)
Run Code Online (Sandbox Code Playgroud)

没有声明其他地方不需要的变量?

int filesCount = orderBean.getFiles().size();
if(filesCount > 0  && filesCount < 5) {
Run Code Online (Sandbox Code Playgroud)

我的意思是,在for循环中我们为实际迭代"声明条件",可以声明一个变量然后指定条件.在这里,人们无法做到,也无法做到这一点

if(5 > orderBean.getFiles().size() > 0)
Run Code Online (Sandbox Code Playgroud)

jta*_*orn 25

简单实用方法:

public static boolean isBetween(int value, int min, int max)
{
  return((value > min) && (value < max));
}
Run Code Online (Sandbox Code Playgroud)


And*_*yle 10

一些第三方库具有封装范围概念的类,例如Apache commons-lang的Range(和子类).

使用这样的类你可以表达你的约束类似于:

if (new IntRange(0, 5).contains(orderBean.getFiles().size())
// (though actually Apache's Range is INclusive, so it'd be new Range(1, 4) - meh
Run Code Online (Sandbox Code Playgroud)

还有额外的好处,可以将范围对象定义为类中其他位置的常量值.

但是,如果没有引入其他库并使用它们的类,Java的强大语法意味着您无法按摩语言本身来很好地提供此功能.并且(在我看来),仅仅因为少量的语法糖而吸引第三方库是不值得的.