Osc*_*Ryz 18
方法main()可以指定为private还是protected?
是
它会编译吗?
是
它会运行吗?
是的,但它不能作为您的申请的切入点.如果从其他地方调用它,它将运行.
试试看:
$cat PrivateMain.java
package test;
public class PrivateMain {
protected static void main( String [] args ) {
System.out.println( "Hello, I'm proctected and I'm running");
}
}
class PublicMain {
public static void main( String [] args ) {
PrivateMain.main( args );
}
}
$javac -d . PrivateMain.java
$java test.PrivateMain
Main method not public.
$java test.PublicMain
Hello, I'm proctected and I'm running
Run Code Online (Sandbox Code Playgroud)
在此代码中,受保护的方法不能用作应用程序的入口点,但是,它可以从类中调用 PublicMain
不能调用私有方法,而是从类本身调用.所以你需要这样的东西:
public static void callMain() {
main( new String[]{} );
}
Run Code Online (Sandbox Code Playgroud)
要打电话,main如果它是私人的.