Как упоминалось ранее, Math.max () принимает только два аргумента.Он не совсем совместим с вашим текущим синтаксисом, но вы можете попробовать Collections.max ().
Если вам это не нравится, вы всегда можете создать для него собственный метод ...
public class test {
final static int MY_INT1 = 25;
final static int MY_INT2 = -10;
final static double MY_DOUBLE1 = 15.5;
public static void main(String args[]) {
double maxOfNums = multiMax(MY_INT1, MY_INT2, MY_DOUBLE1);
}
public static Object multiMax(Object... values) {
Object returnValue = null;
for (Object value : values)
returnValue = (returnValue != null) ? ((((value instanceof Integer) ? (Integer) value
: (value instanceof Double) ? (Double) value
: (Float) value) > ((returnValue instanceof Integer) ? (Integer) returnValue
: (returnValue instanceof Double) ? (Double) returnValue
: (Float) returnValue)) ? value : returnValue)
: value;
return returnValue;
}
}
Это будет принимать любое количество смешанных числовых аргументов (Integer, Double и Float), но возвращаемое значение является Object, поэтому вам придется преобразовать его в Integer, Double или Float.ошибка, поскольку нет такой вещи, как "MY_DOUBLE2".