大于和小于一个陈述

时间:2011-01-10 12:40:15

标签: java operators

我很想知道,你有一个巧妙的方法吗?

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)

8 个答案:

答案 0 :(得分:24)

简单实用方法:

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

答案 1 :(得分:10)

多个第三方库都有封装范围概念的类,例如Apache commons-lang&#39; 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

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

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

答案 2 :(得分:3)

如果getFiles()返回java.util.Collection!getFiles()。isEmpty()&amp;&amp;大小&lt; 5 可以。

另一方面,除非您封装提供boolean sizeBetween(int min, int max)

等方法的容器

答案 3 :(得分:2)

这是一种难看的方式。我只想使用局部变量。

编辑:如果size()&gt; 0也是。

if (orderBean.getFiles().size() + Integer.MIN_VALUE-1 < Integer.MIN_VALUE + 5-1)

答案 4 :(得分:2)

java不是python。

你不能做这样的事情

if(0 < i < 5) or if(i in range(0,6))

你提到了最简单的方法:

int i = getFilesSize();
if(0 < i && i < 5){
    //operations

}

   if(0 < i){
       if(i < 5){
          //operations
       }
     }

答案 5 :(得分:1)

如果真的困扰你,为什么不编写自己的方法isBetween(orderBean.getFiles().size(),0,5)

另一个选择是使用isEmpty,因为它更清晰:

if(!orderBean.getFiles().isEmpty() && orderBean.getFiles().size() < 5)

答案 6 :(得分:1)

请在某处写一个静态方法并写下:

if( isSizeBetween(orderBean.getFiles(), 0, 5) ){
    // do your stuff 
}

答案 7 :(得分:0)

现在您可以使用lodash

var x = 1;
var y = 5;
var z = 3;
_.inRange(z,x,y);
//results true