Program omija ify

0

Hej, wiecie może co tu jest źle że omija ify

	    String firstLaunch = wr.readString(wr.HKEY_LOCAL_MACHINE, "SOFTWARE\\" + pi.programName, "firstLaunch");
	    
	    if(firstLaunch == "yes") {
	    	
	    	System.out.println("yes");
	    	
	    }
	    
	    if(firstLaunch == "null") {
	    	
	    	System.out.println("null");
	    	
	    }

to sprawdza czy w rejestrze w kluczu HKLM\SOFTWARE\BLauncher jest wartość o nazwie firstLaunch w której jest "yes", jeśli ta wartość istnieje to wtedy

String firstLaunch = wr.readString(wr.HKEY_LOCAL_MACHINE, "SOFTWARE\\" + pi.programName, "firstLaunch");

powinien zwracać "yes" a jeśli nie istnieje powinien zwracać "null", a potem ify sprawdzają czy jest "yes" czy "null" i wykonują jakąś rzecz. A może macie w ogóle lepszy sposób na sprawdzenie czy jakaś wartość w rejestrze istnieje. Jestem początkujący w javie :)

6

Stringi porównuje się za pomocą metody equals

String s = "test";
if(s.equals("test")){
 System.out.println("TADA");
}
4
  1. Nie porównuje się obiektów przez ==
  2. null oraz "null" to są dwie rożne rzeczy. Jedna to null a druga to string zawierający słowo null. Różnica jak między krzesłem i krzesłem elektrycznym.
0
hzmzp napisał(a):

Stringi porównuje się za pomocą metody equals

String s = "test";
if(s.equals("test")){
 System.out.println("TADA");
}

Wtedy otrzymuje na ifie

Exception in thread "main" java.lang.NullPointerException
	at main.Main.main(Main.java:46)
2
krysteq28 napisał(a):

Wtedy otrzymuje na ifie

Exception in thread "main" java.lang.NullPointerException
	at main.Main.main(Main.java:46)

Widocznie firstLaunch zawiera nulla. Zamień na:

  if("yes".equals(firstLaunch) {
    System.out.println("yes");
  }
0

Ok, działa dzięki wszystkim

1

Polecam debugger

1 użytkowników online, w tym zalogowanych: 0, gości: 1