![](/img/trans.png)
[英]Java: boolean primitive private method returning false even though set to true
[英]Java boolean returns false even though answer should be correct
我目前正在使用Raspberry Pi Zero W進行Smartmirror項目,並且需要Java程序來檢查Internet連接,以便知道可以更新天氣數據。 對於這種方法,我使用iwgetid命令來獲取SSID。 問題如下:我返回命令行並將其放入if塊中。 即使return(我檢查的是正確的輸出)是正確的,布爾值也會返回false作為輸出。
public boolean checkwifi() throws IOException, InterruptedException{
ProcessBuilder ps = new ProcessBuilder("iwgetid");
ps.redirectErrorStream(true);
Process pr = ps.start();
BufferedReader in = new BufferedReader(new InputStreamReader(pr.getInputStream()));
String line;
line=in.readLine();
line.trim();
if(line == "wlan0 ESSID:\"mySSID\"" || line== "wlan0 ESSID:\"mysecondSSID\"" ){
pr.waitFor();
in.close();
return true;
}
else {
System.err.println(line);
pr.waitFor();
in.close();
return false;
}
}
這是我從控制台獲得的輸出:
wlan0 ESSID:"mySSID"
false
if(line == "wlan0 ESSID:\\"mySSID\\"" || line== "wlan0 ESSID:\\"mysecondSSID\\"" )
將line
的引用與字符串進行比較,它們是不同的。
使用line.equals("wlan0 ESSID:\\"mySSID\\"") || line.equals("wlan0 ESSID:\\"mysecondSSID\\"")
line.equals("wlan0 ESSID:\\"mySSID\\"") || line.equals("wlan0 ESSID:\\"mysecondSSID\\"")
比較字符串的實際值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.