大于和小于一个语句

2022-09-02 05:34:45

我想知道,你有一个巧妙的方法做到这一点吗?

if(orderBean.getFiles().size() > 0  && orderBean.getFiles().size() < 5)

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

int filesCount = orderBean.getFiles().size();
if(filesCount > 0  && filesCount < 5) {

我的意思是,在for循环中,我们为实际迭代“声明条件”,可以声明一个变量,然后指定条件。在这里,人们做不到,也不能做这样的事情。

if(5 > orderBean.getFiles().size() > 0)

答案 1

简单的实用程序方法:

public static boolean isBetween(int value, int min, int max)
{
  return((value > min) && (value < max));
}

答案 2

一些第三方库具有封装范围概念的类,例如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

额外的好处是,range对象可以定义为类中其他位置的常量值。

但是,如果不拉入其他库并使用它们的类,Java的强大语法意味着您无法调整语言本身以很好地提供此功能。而且(在我自己看来),仅仅为了这种少量的语法糖而引入第三方库是不值得的。