Une méthode principale en Java peut-elle renvoyer quelque chose?

J’ai récemment passé une entrevue et ils m’ont posé deux questions dans le kernel de Java.

Q 1.

Peut-on écrire une classe java avec:

public static int main(Ssortingng[] args){ System.out.println("Hello"); 

J’ai répondu: non. Le compilateur ne le comstackra pas car il s’attend à ce que le type de retour de main soit int , même si nous pouvons le surcharger.

Q 2: La prochaine question à laquelle je n’ai pas pu répondre.

Ecrivez un programme pour que votre méthode main Java puisse retourner quelque chose.

Ie comment pouvez-vous rendre public static void main([] args) pour retourner quelque chose?

Est-ce qu’un organisme peut m’aider à répondre à cela?

Q 1. Peut-on écrire une classe java avec: public static int main (Ssortingng [] args) {

Oui, vous pouvez, mais vous ne pouvez pas exécuter cette classe Java.

Exemple de classe:

 class MainTest { public static int main(Ssortingng[] args) { return 1; } } 

Vous recevrez un message d’erreur lorsque vous essayez de l’exécuter:

 Error: Main method must return a value of type void in class MainTest, please define the main method as: public static void main(Ssortingng[] args) 

Q 2: Question suivante à laquelle je suis incapable de répondre. Il a demandé à écrire un programme pour que votre méthode principale Java puisse retourner quelque chose.

Vous pouvez utiliser System # exit (int) pour quitter votre programme avec un code de sortie spécifique pouvant être interprété par le système d’exploitation.

Généralement, dans les langages où main retourne int (comme C et C ++), le code retour de main devient le code de sortie du processus, souvent utilisé par les interpréteurs de commandes et autres programmes externes pour déterminer si le processus s’est terminé avec succès. Pour obtenir le même effet en Java, utilisez la méthode System.exit (analogue à la sortie standard de la fonction C), comme ceci:

 public static void main(Ssortingng[] args) { System.exit(42); } 

Citant la documentation Java liée ci-dessus:

Termine la machine virtuelle Java en cours d’exécution. L’argument sert de code d’état; par convention, un code de statut différent de zéro indique une terminaison anormale.

On ne peut pas renvoyer une valeur depuis une fonction principale Java. Les programmes peuvent toutefois renvoyer un code d’état.

Essayez ce qui suit pour quitter avec un état int dans Java System.exit(45)

Oui, nous pouvons écrire la méthode principale avec un type de retour autre que vide. Cela signifie simplement que nous pouvons surcharger notre méthode principale. Certains exemples sont

  1. public static void main(Ssortingng ... x){ }
  2. public static int main(Ssortingng []args){ }
  3. public static void main(ssortingng array[]){ }

Mais, notez ici que le compilateur ne saura que

 public static void main(Ssortingng []args){ } 

Si la méthode ci-dessus n’est pas présente, elle ne sera pas compilée.

Une façon de procéder est de modifier les valeurs de args [i] pour i plus petit que args.length, à l’intérieur de la méthode principale.

Exemple:

 public class Test{ // public static void main(Ssortingng[] args){ args[0] = "a value"; args[1] = "another value"; } } 

D’une autre classe:

 public class Other{ public static void main(Ssortingng[] args){ Ssortingng[] result={"",""}; Test.main(result); System.out.println(result[0]); System.out.println(result[1]); } } 

La sortie est alors:

valeur
une autre valeur

Oui, vous pouvez renvoyer le type void.Mais la valeur ira à JVM et plus de code après le retour sera exécuté car le contrôle retournera à JVM qui appelle main ()