twisterrob
07/21/2019, 1:26 PMprivate fun findTheField(fields: List<Field>): Field? {
if (fields.isEmpty()) {
return null
}
if (fields.size == 1) {
return fields.first()
}
val selectedFields = fields.filter(::someCondition)
if (selectedFields.size == 1) {
return selectedFields[0]
} else {
throw IllegalArgumentException(
"Too many fields matching some condition found: ${fields.joinToString(", ")}"
)
}
}
this question was triggered by Detekt: ReturnCount
"... has 3 return statements which exceeds the limit of 2", which kind of has a point there.Dominaezzz
07/21/2019, 1:31 PMprivate fun findTheField(fields: List<Field>): Field? {
if (fields.isEmpty()) {
return null
}
if (fields.size == 1) {
return fields.first()
}
return fields.single(::someCondition)
}
twisterrob
07/21/2019, 1:32 PMDominaezzz
07/21/2019, 1:33 PMprivate fun findTheField(fields: List<Field>): Field? {
return when {
fields.isEmpty() -> null
fields.size == 1 -> fields.first()
else -> fields.singleOrNull(::someCondition) ?: throw .....
}
}
twisterrob
07/21/2019, 1:33 PMDominaezzz
07/21/2019, 1:48 PMelect
07/22/2019, 9:01 AMreturn