What does "Can be package local" mean? (IDEA Inspection)
Solution 1:
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.
Solution 2:
If you want to suppress this warning:
- Go to Preferences -> Editor -> Inspections
- Go to Java -> Declaration redundancy
- Select "Declaration access can be weaker"
- Uncheck the "Suggest package local visibility..." checkboxes on the right
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
Solution 3:
Each of these lint warnings can be suppressed on a case-by-case basis with the following code.
@SuppressWarnings("WeakerAccess")
Solution 4:
Your HeartBeat class isn't used anywhere outside of package com.xxxxxxxxxxx.app.xxxx. In this case you can declare the class 'protected' or 'private' to be more precise in your access.
If you do not intend to use this class outside of this package, you should change the class declaration. If you intend to use this class outside this package, leave it and the warning will go away.
E.g.:
protected class HeartBeat {
...
}