Has there ever been official discussion regarding why you can't do this in Java, if it's a thing the JVM allows? Maybe there are performance issues with code analysis and/or compilation?
This seems obvious, but I've been learning Swift myself, and I've found that the official book you can find on the Swift website is pretty easy to follow. It does require some other Programming experience to really get the most out of it, but I've found it fairly accessible overall.