是否有更简洁的方法来实现这一目标?
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中,我不确定。
答案 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();
}