| // Copyright (c) 2018, the R8 project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| package lambdas_jstyle_trivial; |
| |
| public class Lambdas { |
| public interface IntConsumer { |
| void put(int value); |
| } |
| |
| public interface Consumer<T> { |
| void put(T t); |
| } |
| |
| public interface Supplier<T> { |
| T get(); |
| } |
| |
| public interface IntSupplier { |
| int get(); |
| } |
| |
| public interface MultiFunction<R, P1, P2, P3> { |
| R get(P1 a, P2 b, P3 c); |
| } |
| |
| public synchronized static void acceptStringSupplier(Supplier<String> s) { |
| System.out.println(s.get()); |
| } |
| |
| public synchronized static <T> void acceptGenericSupplier(Supplier<T> s) { |
| System.out.println(s.get()); |
| } |
| |
| public synchronized static void acceptIntSupplier(IntSupplier s) { |
| System.out.println(s.get()); |
| } |
| |
| public synchronized static void acceptStringConsumer(Consumer<String> s, String arg) { |
| s.put(arg); |
| } |
| |
| public synchronized static <T> void acceptGenericConsumer(Consumer<T> s, T arg) { |
| s.put(arg); |
| } |
| |
| public synchronized static void acceptIntConsumer(IntConsumer s, int arg) { |
| s.put(arg); |
| } |
| |
| public synchronized static <R, P1, P2, P3> |
| void acceptMultiFunction(MultiFunction<R, P1, P2, P3> s, P1 a, P2 b, P3 c) { |
| System.out.println(s.get(a, b, c)); |
| } |
| } |