Seit Java 9 gibt es die Methode getPackageName(), die ausschließlich den Paketnamen liefert. Das funktioniert auch auf Class-Objekten von Arrays und primitiven Datentypen.
Beispiel: Alle folgenden Ausgaben sind java.lang.
System.out.println( System.class.getPackageName() ); // java.lang System.out.println( Thread.State.class.getPackageName() ); // java.lang System.out.println( byte.class.getPackageName() ); // java.lang System.out.println( byte[].class.getPackageName() ); // java.lang
Beispiel: Finde heraus, ob zwei Klassen im gleichen Paket liegen:
static boolean isSameClassPackage( Class<?> c1, Class<?> c2 ) { return ( c1.getClassLoader() == c2.getClassLoader() ) && ( c1.getPackageName().equals( c2.getPackageName() ) ); }