“可以包装本地”是什么意思? (IDEA检查)
我使用IntelliJ作为“检查代码”,其结果之一是:
问题简介可以在本地打包(在第18行(public class HeartBeat)
)
这是什么意思,我该如何解决?
它全class是这样的:
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是指包 – 私人可见性。
一个类可以用修饰符
public
声明,在这种情况下,这个类对所有的类都是可见的。 如果一个类没有修饰符(默认,也被称为包私有),它只在其自己的包中可见
有关更多信息,请参阅控制对类成员的访问 。
您可以通过从类中删除public
关键字(如果该类不打算在包外使用)或通过使用不同包中的类来解决问题。
如果你想压制这个警告:
- 转到首选项 – >编辑 – >检查
- 转到Java – >声明冗余
- select“声明访问权限可以更弱”
- 取消选中右侧的“build议包本地可见性…”checkbox
有时候,皮棉得到错误。 以下代码可以逐一抑制这些棉绒警告中的每一个。
@SuppressWarnings("WeakerAccess")
您的HeartBeat类不在包com.xxxxxxxxxxx.app.xxxx之外的任何地方使用。 在这种情况下,您可以在访问中声明“protected”或“private”类更加精确。
如果你不打算在这个包之外使用这个类,你应该改变类的声明。 如果你打算在这个包的外面使用这个类,离开它,警告就会消失。
例如:
protected class HeartBeat { ... }
从Android应用程序背景来看,您还需要考虑有时这些警告是多余的。 所以对于debug build
类,它可以是package local
但对于release build
它可能在包之外使用。
我已经禁用它在我的最终和@ashario答案是相当有帮助的,find如何做到这一点。