J'ai utilisé IntelliJ pour "Inspect Code" et l'un de ses résultats est:
Résumé du problème Peut être package local (à la ligne 18(public class HeartBeat)
)
Qu'est-ce que cela signifie, comment puis-je résoudre ce problème?
toute la classe est comme ça:
package com.xxxxxxxxxxx.app.xxxx;
public class HeartBeat
{
private static final Logger LOG = LoggerFactory.getLogger( HeartBeat.class );
private final File heartBeatFile;
public HeartBeat( File heartBeatFile )
{
this.heartBeatFile = heartBeatFile;
}
public void beat()
{
try
{
FileUtils.writeStringToFile( heartBeatFile, String.valueOf( System.currentTimeMillis() ) );
}
catch( IOException e )
{
LOG.error( "Error while writing heart beat log", e );
}
}
}
IDEA fait référence à la visibilité du paquet privé .
Une classe peut être déclarée avec le modificateur
public
, auquel cas cette classe est visible par toutes les classes du monde entier. Si une classe n'a pas de modificateur (la valeur par défaut, également appelée package-private), elle n'est visible que dans son propre package.
Pour plus d'informations, voir Contrôle de l'accès aux membres d'une classe .
Vous pouvez résoudre le problème en supprimant le mot clé public
de la classe (si la classe n'est pas destinée à être utilisée en dehors du package) ou en utilisant la classe d'un autre package.
Si vous souhaitez supprimer cet avertissement:
EDIT: dans la dernière IDEA édition étape 4, cela semble avoir changé pour "Suggérer le niveau de visibilité paquet-privé pour ..." et inclut plusieurs options pour diverses conditions
Chacun de ces avertissements contre les peluches peut être supprimé au cas par cas avec le code suivant.
@SuppressWarnings("WeakerAccess")
Votre classe HeartBeat n'est utilisée nulle part en dehors du package com.xxxxxxxxxxx.app.xxxx. Dans ce cas, vous pouvez déclarer la classe "protégée" ou "privée" plus précise dans votre accès.
Si vous n'avez pas l'intention d'utiliser cette classe en dehors de ce package, vous devez modifier la déclaration de la classe. Si vous avez l'intention d'utiliser cette classe en dehors de ce package, laissez-la et l'avertissement disparaîtra.
Par exemple.:
protected class HeartBeat {
...
}
En provenance de l'arrière-plan de l'application Android, vous devez également tenir compte du fait que parfois ces avertissements sont redondants. Donc, pour debug build
classes, cela peut être package local
mais pour release build
il peut être utilisé en dehors du paquet.
Je l'ai désactivé de mon côté et @ashario answer m'a été d'une grande aide pour trouver comment le faire.