I believe the first approach is more widely used, though at least one programmer I respect said they never use anonymous inner classes. I'm not sure they had a good reason or whether it just boiled...