Прежде всего вы не должны передавать Optionals в качестве параметров в метод , если вы видите код, который передает опциональные значения в методы - измените его, разверните опционные опции в том месте, где вы вызываете метод.Рассмотрим этот шпаргалку от Zeroturnaround .
PS: Просто для удовольствия: я предлагаю, если вы используете дополнительные функции здесь, так почему бы не использовать потоки?:)
public static void main(String[] args) {
int[] array = new int[]{1, 2, 3, 4, 5};
printArray(array, OptionalInt.of(0), OptionalInt.empty());
System.out.println();
printArray(array, OptionalInt.of(1), OptionalInt.empty());
System.out.println();
printArray(array, OptionalInt.of(1), OptionalInt.of(2));
System.out.println();
}
private static void printArray(int[] array, OptionalInt startIndex, OptionalInt endIndex) {
int startIdx = startIndex.orElse(0);
int endIdx = endIndex.orElse(array.length);
if (endIdx < startIdx)
return;
Arrays.stream(array).skip(startIdx).limit(endIdx).forEach(n -> System.out.print(n + " "));
}
Это дает нам такой вывод:
1 2 3 4 5
2 3 4 5
2 3