Kommandozeilen Parameter überprüfen

  • Themenstarter Themenstarter Thomas4
  • Beginndatum Beginndatum
T

Thomas4

Gast
Hallo!

Ich schreibe ein Programm, dass einfach mit "java WebServer" oder mit den Parametern "java Webserver -mime C:\mime.types" ausgeführt werden kann.

Wenn ich jetzt überprüfe, wie der erste Parameter lautet (zB mit System.out.println), bekomme ich ein "-mime" ausgegeben.
Wenn ich aber folgendes mache

Java:
if (argv[0] == "-mime") System.out.println("Ja");
else System.out.println("Nein");

lande ich immer im 2. Fall, obwohl ich ja oben den String ausgegeben hab, und er wurde als "-mime" angezeigt.

Wieso funktioniert das nicht, und warum überhaupt gibt es Parameter mit einem "-" Zeichen davor?
 
Das funktioniert nicht, weil der "==" - Operator nur oberflächlich überprüft, ob die zu vergleichenden Objekte gleich sind. Das heißt, er schaut sich nur die Variablennamen an und sagt, diese beiden Objekte sind nicht gleich. Wenn du Objekte wie Strings vergleichen willst, dann musst du die Methode equals benutzen.
 
Das funktioniert nicht, weil der "==" - Operator nur oberflächlich überprüft, ob die zu vergleichenden Objekte gleich sind. Das heißt, er schaut sich nur die Variablennamen an und sagt, diese beiden Objekte sind nicht gleich.
Das ist so nicht ganz richtig.
Code:
==
prüft ob es sich um die selben Instanzen handelt. Als Faustregel, Objekte immer mit equals vergleichen, primitive immer mit dem == Operator.
 

Neue Themen


Zurück
Oben