According to the same Javadoc:
If the argument is NaN or an infinity or positive zero or negative zero, then the result is the same as the argument. Can’t do that with an int.
The largest double value is also larger than the largest int, so it would have to be a long.