SQL IN condition in Java

我有多种条件需要检查,如下所示,

if(pouch.getStatus().equals("Finalized") || pouch.getStatus().equals("Ready") 
  || pouch.getStatus().equals("Checkout") || pouch.getStatus().equals("Confirmed")
  || pouch.getStatus().equals("Book") || pouch.getStatus().equals("Started")
  || pouch.getStatus().equals("Inital") || pouch.getStatus().equals("Close")) {
        // Body Implementation
}

有没有简单的方法来检查上述条件,类似于SQL条件,使代码看起来更简单?IN


答案 1

让我们来看看 SQL 功能in

SQL WHERE 返回与列表中的值匹配的值IN


因此,我将使用一个集合,它实现了Collection<E>并且包含方法,使语句更简单。if

contains(Object o) 如果此集合包含指定的元素,则返回 true。

contains效果与 SQL 非常相似。in


1.在集合中添加多个条件,该集合实现自Collection<E>

Set<String> dict = new HashSet<String>();
dict.add("Finalized");
dict.add("Ready");
dict.add("Checkout");
dict.add("Confirmed");
dict.add("Book");
dict.add("Started");
dict.add("Inital");
dict.add("Close");

2.用于检查集合中是否存在输入值。contains

if (dict.contains(pouch.getStatus()))
{
     // do your logic
}

答案 2

您可以使用类中可用的方法,matchesString

if(pouch.getStatus().matches("Finalized|Ready|Checkout|Confirmed|Book|Started|Inital|Close")){
   //your implementation goes here
}