Initially when Java was being designed there was some debate on whether Anonymous Inner Classes should be allowed to access non final local (method) variables. Eventually the feature did not make it in, but had it, then an anonymous inner class would have been almost a closure except that it goes against Martin Fowler's principle that languages that support closures should allow you to define them with very little syntax.