Classes in com.sun.* and sun.* packages are considered implementation details, and are not part of the Java API. They can cause problems when moving to new versions of Java because there is no backwards compatibility guarantee. Such classes are almost always wrapped by Java API classes that should be used instead.

The following code snippet illustrates this rule:

import com.sun.jna.Native;     // Non-Compliant
import sun.misc.BASE64Encoder; // Non-Compliant