2016-06-12 1 views
0

J'essaie d'utiliser une autre classe pour renvoyer des données d'une autre classe. Cette classe renvoie un mot de passe ou une clé, en fonction des arguments envoyés à la classe.Arguments dans la fonction Java

C'est la fonction de la classe qui renvoie les données:

public static String main(String args[]){ 
     if (!args.equals(null)){ 
      String gen = generatePassword(args[1]); 
      return gen; 
     }else{ 
      String gen = generateRandomString(); 
      return gen; 
     } 
    } 

Mon erreur est:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException 
at me.GaryIsASloth.KeyGenerator.main(KeyGenerator.java:34) 

Avec 34 se référant à:

if (!args.equals(null)){ 

Les arguments fournis seront soit "pass", suivi de "true"/"false" qui indiquera à la classe s'il faut inclure des caractères spéciaux ou non . Ou pour la clé, les arguments seront nuls.

Je pensais que la classe fonctionnait parfaitement lorsque je l'utilisais avec la clé, puis, après modification, le mot de passe fonctionnait correctement. Cependant, je ne peux pas le faire fonctionner avec les deux, en fonction des arguments. J'ai essayé le contrôle nul et le contrôle de longueur. Que puis-je faire?

Répondre

0

Lors de la vérification de null, vous ne pouvez pas vérifier something.equals(null) car equals est une méthode et ne peut pas être appelée sur null. Null n'est pas un objet. Deuxièmement, les éléments dans les tableaux numérotés à partir de 0 de sorte que le premier élément sera arg[0].

public static String main(String args[]){ 
     String gen; 
     if (args != null){ 
      gen = generatePassword(args[0]); 
     }else{ 
      gen = generateRandomString(); 
     } 
     return gen; 
    } 
+0

'return gen! = Null? generatePassword (args [0]): generateRandomString(); 'est beaucoup plus propre imo – Idos

+0

@Idos d'accord, mais pour les débutants, il pourrait être trop compliqué. –

+0

@idos réparez votre suggestion –

0

Ce ici:

if (!args.equals(null)){ 
      String gen = generatePassword(args[1]); 
      return gen; 

juste parce que args est non nul, cela signifie qu'il a 2 éléments?

ce ici est pas une bonne idée:

String main(String[] args) 

car java a une méthode qui ressemble à cette de sorte que la coïncidence ne vous permet pas de compiler

+0

Ce n'est pas le problème de l'OP .. – Idos

0

Au lieu de vérifier if (!args.equals(null)) faire comme Ensuite, vous devriez vérifier si vous avez le bon nombre d'arguments, si vous voulez accéder args[1]

if(args.length == 2)