protected int xMethod (Integer a, Integer b) {
if (a<b)
return 1
else if (a>b)
return 2
else
return 3
}
Интересно, существует ли некоторый способ переписать выше метода по-другому в отличном? как теперь очень стиль Java.
Кажется, что функции просто нужно возвращать 3 разных значения в зависимости от того, меньше ли a, равно или больше b. В Groovy уже есть оператор, который делает это:
a <=> b
Возвращаемые значения - -1, 0 и 1. Возможно, лучше всего реорганизовать код, чтобы использовать этот оператор вместо xMethod, если это возможно.
Конечно, если важны точные значения 1, 2 и 3, а не только 3 различных значения, то вы не можете этого сделать.
Если вы удалите два вхождения Integer из подписи, вы можете вызвать метод с любыми параметрами, для которых определено <.
Например.
assert x.xMethod (1, 2) == 1
assert x.xMethod ("2", "1") == 2
assert x. xMethod (2.0, 2.0) == 3
Просто чтобы расширить ответ Марка:
protected int xMethod (Integer a, Integer b) {
switch ( a <=> b ) {
case -1: 1; break
case 1: 2; break
case 0: 3; break
}
}
Однако вы должны спросить, имеет ли этот метод какое-либо значение. Если вызывающий может быть изменен на принятие -1, 0, 1, тогда у метода нет причин для существования.