I used IntelliJ for "Inspect Code", and one of its results is:
Problem synopsis Can be package local (at line 18(public class HeartBeat)
)
What does it mean, how can I fix it?
it whole class is like this:
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 is referring to package-private visibility.
A class may be declared with the modifier
public
, in which case that class is visible to all classes everywhere. If a class has no modifier (the default, also known as package-private), it is visible only within its own package
For more information, see Controlling Access to Members of a Class.
You can solve the problem by removing public
keyword from the class (if the class is not intended to be used outside the package), or by using the class from a different package.
If you want to suppress this warning:
EDIT: in the latest IDEA release step 4 this looks to have changed to "Suggest package-private visibility level for ..." and includes several options for various conditions
Each of these lint warnings can be suppressed on a case-by-case basis with the following code.
@SuppressWarnings("WeakerAccess")
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With