java - Java 中的 SQL IN 条件

标签 java collections conditional-statements hashset where-in

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

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条件的上述条件,让代码看起来更简单?

最佳答案

让我们来看看SQL in特点

SQL WHERE IN returns values that match values in a list


所以我会使用一个集合,它实现了 Collection<E> 并且有contains方法,使if语句更简单。

contains(Object o) Returns true if this set contains the specified element.

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
}

关于java - Java 中的 SQL IN 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50885959/

相关文章:

java - jar 应该有 "provided"依赖项吗?

java - 将 SQLite 游标中的所有行列获取到对象中

java - 从 SynchronizedMultimap 中删除元素会增加意外行为

java - 使用@ConditionaOnProperty注释的类的Spring和Web集成测试

java - 将文件名写入 utf-8 目录

SingleOutputStreamOperator#returns(TypeHint<T> typeHint) 方法的 javadoc

linq - 使用递归过滤 LINQ 上的集合

java - 根据其中的一个字段对 Java 集合对象进行排序

redis - 如何在条件语句中引用redis的nil?

c# - 连接通用 .Net 方法参数的条件逻辑