Method local inner class should not be allowed to access method local variable because method local variables are stored in a stack, where as method local inner class object is stored in a heap. Scope of method local variables are limited to that method only. But your method can pass the reference of the method local inner class object to some other method which can keep the method local inner class object live even if method gets over.
So, if method local inner class object is used by any other method, then that object will explode if the access to method local variables are allowed, as those local variables are already out of scope.