private static RuntimeException outOfBounds(BiFunction<String,List<Integer>,? extends RuntimeException> oobef,String checkKind,Integer... args){
  List<Integer> largs=Arrays.asList(args);
  RuntimeException e=oobef == null ? null : oobef.apply(checkKind,largs);
  return e == null ? new IndexOutOfBoundsException(outOfBoundsMessage(checkKind,largs)) : e;
}

private static RuntimeException outOfBounds ( BiFunction < String , List < Integer > , ? extends RuntimeException > oobef , String checkKind , Integer ... args ) { List < Integer > largs = Arrays . asList ( args ) ; RuntimeException e = oobef == null ? null : oobef . apply ( checkKind , largs ) ; return e == null ? new IndexOutOfBoundsException ( outOfBoundsMessage ( checkKind , largs ) ) : e ; }
maps out - of - bounds values to a runtime exception .
