Java 应用程序类可以是包私有的吗?
我的应用程序类别代码:Java 应用程序类可以是包私有的吗?,java,android,android-studio,android-studio-3.1,Java,Android,Android Studio,Android Studio 3.1,我的应用程序类别代码: import android.app.Application; import android.os.Process; import com.squareup.leakcanary.LeakCanary; public class SampleApplication extends Application { public SampleApplication() { super(); } @Override publi
import android.app.Application;
import android.os.Process;
import com.squareup.leakcanary.LeakCanary;
public class SampleApplication extends Application {
public SampleApplication() {
super();
}
@Override
public void onCreate() {
super.onCreate();
//noinspection ConstantConditions
if (LeakCanary.isInAnalyzerProcess(this)) {
// This process is dedicated to LeakCanary for heap analysis.
// You should not init your app in this process.
return;
}
LeakCanary.install(this);
// Normal app init code...
}
@Override
public void onTerminate() {
System.exit(0);
Process.killProcess(Process.myPid());
super.onTerminate();
}
}
Android Studio 3.1金丝雀7-->分析-->检查代码-->确定:
声明访问权限可能会更弱
1警告:SampleApplication可以是包私有的
应用程序类可以是包专用的还是它的lint错误?是的,它可以是包专用的。检查堆栈溢出中的问题,并阅读以了解如何控制对类成员的访问
进一步的解释是:从应用程序启动应用程序时不需要main方法(继承的类充当主类)。如果您正在使用它访问其他软件包,则需要将其公开。如果不是,您可以将其设置为包专用。是,它可以是包private@UdeshUK,:“创建应用程序/包的流程时,应用程序类或应用程序类的子类在任何其他类之前实例化”。这是否意味着应用程序类必须是公共的?正如Alex在Java文档中所引用的——“一个类可以用修饰语public声明,在这种情况下,该类对所有的类都是可见的。如果一个类没有修饰语(默认值,也称为包私有),它只在它自己的包中可见”:“在创建应用程序/包的进程时,应用程序类或应用程序类的子类先于任何其他类实例化”。这是否意味着应用程序类必须是公共的?@AlexanderSavin从应用程序开始允许您在没有主方法的情况下启动应用程序(继承的类充当主类)。如果您使用它访问其他包,则它需要是公共的。如果不是,您可以将其设置为package-private。Alex Cuadron谢谢,我接受了您的回答,请将您的评论添加到您的answer@AlexanderSavin完成,感谢您选择答案:D