Although I know how default (package) access level works in java, I can't imagine its real use in applications except for those with unique package. What do you use default access level for in business (usually multipackage) java applications?
解决方案
A very common pattern for using package-private classes is to create shared implementations of interfaces or shared subclasses of common classes.
Note that the fact of sharing is important here, because inner classes provide a better alternative for hiding class / interface implementations from the caller.
Another common use is for "utility classes", when you wish to share a group of algorithms "horizontally" among different classes, without exposing these algorithms to outside users of your class library. Various argument checkers fall into this category.