class X { public static void main(final Stream<String> stream) throws Throwable { stream.map(s -> s.substring("http://".length())).forEach(System.out::println); } } interface Stream<T> { <R> Stream<R> map(Function<? super T, ? extends R> mapper); IntStream map(IntFunction<? super T> mapper); void forEach(Block<? super T> block); } interface IntFunction<T> extends Function<T, Integer> { public int applyAsInt(T t); } interface Function<T, R> { public R apply(T t); } interface IntStream extends BaseStream<Integer> {} interface BaseStream<T> {} interface Block<T> { public void accept(T t); }