Может ли метод main() класса быть вызван из другого класса в Java
Может main()
метод класса будет вызываться в другом классе в Java?
например
class class1{
public static void main(String []args){
}
}
class class2{
public static void main(String []args){
class1.main();
}
}
7 ответов
Если вы хотите вызвать основной метод другого класса, вы можете сделать это таким образом, если я понимаю вопрос.
public class MyClass {
public static void main( String[] args ) {
System.out.println("main() method of MyClass");
OtherClass obj=new OtherClass();
}
}
class OtherClass {
public OtherClass() {
// Call the main() method of MyClass
String[] arguments = new String[] {"123"};
MyClass.main(arguments);
}
}
Если я правильно понял ваш вопрос...
Метод main() определен в классе ниже...
public class ToBeCalledClass{
public static void main (String args[ ]) {
System.out.println("I am being called");
}
}
Вы хотите вызвать этот основной метод в другом классе.
public class CallClass{
public void call(){
ToBeCalledClass.main(null);
}
}
Насколько я понимаю, вопрос НЕ в рекурсии. Мы легко можем позвонитьmain
метод другого класса в вашем классе. Следующий пример иллюстрирует статический и вызов по объекту. Обратите внимание на пропуск словаstatic
в Class2
class Class1{
public static void main(String[] args) {
System.out.println("this is class 1");
}
}
class Class2{
public void main(String[] args) {
System.out.println("this is class 2");
}
}
class MyInvokerClass{
public static void main(String[] args) {
System.out.println("this is MyInvokerClass");
Class2 myClass2 = new Class2();
Class1.main(args);
myClass2.main(args);
}
}
Результат должен быть:
это класс-оболочка
это класс 1
это класс 2
Да, если это общедоступно, и вы передаете правильные аргументы. Смотрите эту ссылку для получения дополнительной информации. http://www.codestyle.org/java/faq-CommandLine.shtml
попробуйте этот код
// Java method to show Calling main() method
// externally from the same class
import java.io.*;
class GFG {
static int count = 0;
// The method that calls the main() method
static void mainCaller()
{
System.out.println("mainCaller!");
count++;
// Calling the main() only 3 times
if (count < 3) {
// Calling the main() method
main(null);
}
}
// main() method
public static void main(String[] args)
{
System.out.println("main");
// Calling the mainCalller() method
// so that main() methiod is called externally
mainCaller();
}
}
Конечно. Here's a completely silly program that demonstrates calling main
рекурсивно.
public class main
{
public static void main(String[] args)
{
for (int i = 0; i < args.length; ++i)
{
if (args[i] != "")
{
args[i] = "";
System.out.println((args.length - i) + " left");
main(args);
}
}
}
}