---1. Java itself is terrible. It doesn't have lambdas. Enough said.
technically yes but it can be simulated with interfaces and in line declared classes that implement said interface and then have calling reference to the current classes delegate method. I used to scream and yell about this until someone pointed out that I could accomplish the same result this way. I will be the first to day that it is not pretty but you can accomplish the same result.
Just pointing out that technically it can be done, your statement about not having it could mislead someone. I am not arguing the merits of whether or not it is the most optimal solution or not. Just pointing out that it can be done.
2. Everything gets hacked together and becomes old and outdated.