- interfaces with default methods
- parallel streams
- type annotations for stronger type checking (ex: @NotNull)
Default methods can be implemented in Xtend this way:
given a class A that extends the interface X having a method x, create an active annotation, say @Mix, that works by
1) adding a method x to A
2) implementing x using a concrete class Y that implements X
3) Y could be specified using @Mix(Y)
I think that approach would be much cleaner than Java 8, since the interface will still represent just a contract and the implementation is specified elsewhere.