Не хотелось бы что-то вроде следующей работы?
if (methodName.equals("set" + this.name)
|| methodName.equals("get" + this.name)
|| (isBoolean() && methodName.equals("is" + this.name))) {
...
}
Это более читабельно, чем то, как вы использовали троичный оператор, и, конечно, легче понять. Он также имеет то преимущество, что может избежать ненужного вызова метода для метода isBoolean
(он имеет 1, 2 или 4 вызова метода, в то время как у вас всегда есть 1 или 3; выигрыш / потеря производительности, вероятно, слишком мал, чтобы заметить ).
Также здесь есть похожий вопрос под названием «Является ли это разумным использованием троичного оператора?» У одного пользователя было следующее, чтобы сказать :
Тернарный оператор предназначен для
вернуть значение.
ИМО, оно не должно изменять состояние, и
возвращаемое значение должно быть использовано.
В другом случае используйте операторы if.
Если заявления предназначены для выполнения
кодовые блоки.
Обратите внимание, что я включил круглые скобки вокруг выражения, содержащего '&&', для удобства чтения. Они не нужны, потому что x && y
оценивается до m || n
.
Если вы решите использовать его, решать только вам, но я стараюсь избегать его в пользу читабельности.