3 ms·
This is approximately how the first code block in the OP would look like in Java 5: import scala.Function1; import scala.List; import scala.runtime
by jorgeortiz85 16y ago
This is approximately how the first code block in the OP would look like in Java 5:
import scala.Function1;
import scala.List;
import scala.runtime.RichInt;
class App$ {
public static final App$ MODULE$ = new App$();
public boolean isEven(int i) {
return i % 2 == 0;
}
public boolean isOdd(int i) {
return i % 2 == 1;
}
public void main(String[] args) {
final List<Integer> n = (new RichInt(1)).to(10).toList();
n.filter(new Function1<Integer, Boolean>() {
public Boolean apply(final Integer x) {
return isEven(x);
}
}).flatMap(new Function1<Integer, List<Integer>>() {
public List<Integer> apply(final Integer i) {
return n.filter(new Function1<Integer, Boolean>() {
public Boolean apply(final Integer x) {
return isOdd(x);
}
}).map(new Function1<Integer, Integer>() {
public Integer apply(final Integer j) {
return i * j;
}
});
}
});
}
}
class App {
public static boolean isEven(int i) {
return App$.MODULE$.isEven(i);
}
public static boolean isOdd(int i) {
return App$.MODULE$.isOdd(i);
}
public static void main(String[] args) {
App$.MODULE$.main(args);
}
}
Note that, although anonymous inner classes are valid syntax in Java 5, even in Java 5 they are compiled down to separate class files. Hence 2 classes + 4 anonymous inner classes = 6 class files total.
(The code is only approximate. I haven't tried to compile it, so apologies for any errors.)