import kotlin.jvm.functions.Function0;
import kotlin.jvm.functions.Function1;
import kotlin.jvm.functions.Function2;
public class Java8Class {
public void foo0(Function0<String> r) {
}
public void foo1(Function1<Integer, String> r) {
}
public void foo2(Function2<Integer, Integer, String> r) {
}
public void helper() {
}
public void foo() {
foo0(() -> "42");
foo0(() -> { return "42"; });
foo0(() -> {
helper();
return "42";
});
foo1((i) -> "42");
foo1(i -> { return "42"; });
foo1((Integer i) -> {
helper();
if (i > 1) {
return "42";
}
return "43";
});
foo2((i, j) -> "42");
foo2((Integer i, Integer j) -> {
helper();
return "42";
});
Function2<Integer, Integer, String> f = (Integer i, Integer k) -> {
helper();
if (i > 1) {
return "42";
}
return "43";
};
Function2<Integer, Integer, String> f1 = (Integer i1, Integer k1) -> {
Function2<Integer, Integer, String> f2 = (Integer i2, Integer k2) -> {
helper();
if (i2 > 1) {
return "42";
}
return "43";
};
if (i1 > 1) {
return f.invoke(i1, k1);
}
return f.invoke(i1, k1);
};
Runnable runnable = () -> { };
foo1((Integer i) -> {
if (i > 1) {
return "42";
}
foo0(() -> {
if (true) {
return "42";
}
return "43";
});
return "43";
});
}
}