I agree with all of these reasons for refactoring Java. Didn't the addition of assertions and generics to Java begin to open this door? At any rate, if anyone from Sun is reading: making bean properties that are accessible through getProperty and setProperty methods accessible like this:

somebean.someproperty = 5;
somevar = somebean.someproperty;

would be wonderful. C# cribbed a lot from Java; isn't turnabout fair play?