是否有更简洁的方法来实现这一目标?

时间:2014-12-05 16:16:44

标签: java

是否有更简洁的方法来实现这一目标?

private boolean fieldLockExists(String tableName, String fieldName, Integer id)
{
  List<MpFieldLocks> fieldLocks = getFieldLocks(tableName, id);
  boolean exists = false;

  for (MpFieldLocks fieldLock: fieldLocks)
  {
    if (Objects.equals(fieldLock.getFieldName(), fieldName))
    {
      exists = true;
      break;
    }
  }

  return exists;
}

我知道我可以在for循环中返回以缩短它。如果可能的话,我正在寻找更根本的改变。

在C#中我可能会使用LINQ。在Java中,我不确定。

2 个答案:

答案 0 :(得分:3)

如果您使用的是Java 8,则可以使用流:

private boolean fieldLockExists(String tableName, String fieldName, Integer id)
{
    return getFieldLocks(tableName, id)
        .stream()
        .anyMatch(fl -> Objects.equals(fl.getFieldName(), fieldName));
}

答案 1 :(得分:0)

private boolean fieldLockExists(String tableName, String fieldName, Integer id)
{
  return getFieldLocks(tableName, id).stream().
                  filter(s->s.equals(fieldName)).
                  findfirst().isPresent();
}