### Question:
ClassHelper { public static boolean isPublicClass (@Nullable final Class <?> aClass) { if (aClass == null) return false; if (aClass.isInterface () || aClass.isAnnotation ()) return false; if (!isPublic (aClass)) return false; if (isAbstractClass (aClass)) return false; return true; } private  ClassHelper(); static boolean isPublicClass(@Nullable final Class <?> aClass); static boolean isInstancableClass(@Nullable final Class <?> aClass); static boolean isPublic(@Nullable final Class <?> aClass); static boolean isInterface(@Nullable final Class <?> aClass); static boolean isAnnotationClass(@Nullable final Class <?> aClass); static boolean isEnumClass(@Nullable final Class <?> aClass); static boolean isAbstractClass(@Nullable final Class <?> aClass); static boolean isArrayClass(@Nullable final Class <?> aClass); static boolean isPrimitiveType(@Nullable final Class <?> aClass); static boolean isPrimitiveWrapperType(@Nullable final Class <?> aClass); @Nullable static Class <?> getPrimitiveWrapperClass(@Nullable final Class <?> aClass); @Nullable static Class <?> getPrimitiveClass(@Nullable final Class <?> aClass); @Nonnull @ReturnsMutableCopy static ICommonsSet <Class <?>> getAllPrimitiveClasses(); @Nonnull @ReturnsMutableCopy static ICommonsSet <Class <?>> getAllPrimitiveWrapperClasses(); static boolean isStringClass(@Nullable final Class <?> aClass); static boolean isCharacterClass(@Nullable final Class <?> aClass); static boolean isBooleanClass(@Nullable final Class <?> aClass); static boolean isFloatingPointClass(@Nullable final Class <?> aClass); static boolean isIntegerClass(@Nullable final Class <?> aClass); static boolean areConvertibleClasses(@Nonnull final Class <?> aSrcClass, @Nonnull final Class <?> aDstClass); @Nullable static Class <?> getClass(@Nullable final Object aObject); @Nullable static String getClassName(@Nullable final Object aObject); @Nullable static String getClassLocalName(@Nullable final Object aObject); @Nullable static String getClassLocalName(@Nullable final Class <?> aClass); @Nullable static String getClassLocalName(@Nullable final String sClassName); @Nullable static String getClassPackageName(@Nullable final Object aObject); @Nullable static String getClassPackageName(@Nullable final Class <?> aClass); @Nullable static String getClassPackageName(@Nullable final String sClassName); @Nonnull @Nonempty static String getSafeClassName(@Nullable final Object aObject); @Nullable static String getDirectoryFromPackage(@Nullable final Package aPackage); @Nullable static String getDirectoryFromPackage(@Nullable final String sPackage); @Nullable static String getPathFromClass(@Nullable final Class <?> aClass); @Nullable static String getPathFromClass(@Nullable final String sClassName); @Nullable static String getClassFromPath(@Nullable final String sPath); @Nonnull @Nonempty static String getObjectAddress(@Nullable final Object aObject); @Nullable static URL getResource(@Nonnull final Class <?> aClass, @Nonnull @Nonempty final String sPath); @Nullable static InputStream getResourceAsStream(@Nonnull final Class <?> aClass, @Nonnull @Nonempty final String sPath);  }### Answer:
@Test public void testIsPublicClass () { assertFalse (ClassHelper.isPublicClass (null)); assertFalse (ClassHelper.isPublicClass (Override.class)); assertFalse (ClassHelper.isPublicClass (IHasName.class)); assertFalse (ClassHelper.isPublicClass (DummyDefaultVisibility.class)); assertFalse (ClassHelper.isPublicClass (DummyProtectedVisibility.class)); assertFalse (ClassHelper.isPublicClass (DummyPrivateVisibility.class)); assertFalse (ClassHelper.isPublicClass (AbstractDummy.class)); assertTrue (ClassHelper.isPublicClass (String.class)); assertTrue (ClassHelper.isPublicClass (new String [0].getClass ())); assertTrue (ClassHelper.isPublicClass (new AbstractDummy [0].getClass ())); assertTrue (ClassHelper.isPublicClass (getClass ())); assertTrue (ClassHelper.isPublicClass (ClassHelper.class)); assertTrue (ClassHelper.isPublicClass (EOperatingSystem.class)); }