[問題] 判斷式錯誤

作者: ntwu (CEO)   2014-07-01 06:35:48
求救我的判斷式,有高手能給些意見嗎
我有一個return ip位址的函式,ip是存在資料庫的裡的
當印出來return的ip是123.456.789 那他的port我給8885
可是印出來port卻是8887,詳見如下片段程式
執行出來的錯誤訊息就是因為port錯誤的關係所以聯繫不上
我有試著在Socket skt = new Socket(serverIP, ports)把ip port寫死
寫死是可以正常運錯的!
本來我想說用switch但是我目前使用得環境是se6所以switch的case不能使用字串...
如果我要從新安裝se7這樣有很多環境要重新設定....
public class tt extends TimerTask{
static int ports;
static String serverIP;
public void run{
getServer getIP=new getServer();
serverIP=getIP.getServerIP();
//將會return 123.456.789 or 234.567.890 or 345.678.901 ip
if(serverIP=="123.456.789")
{ports=8885;}
else if (serverIP=="234.567.890")
{ports=8886;}
else{ports=8887;}
System.out.println("now ip:"+serverIP+",port:"+ports);
//此時印出來ip是123.456.789 port是8887 !!!
.......
try{
/*
if(serverIP=="123.456.789")
{ports=8885;}
else if (serverIP=="234.567.890")
{ports=8886;}
else{ports=8887;}
System.out.println("now ip:"+serverIP+",port:"+ports);
//此時印出來ip是123.456.789 port也是8887!!!
*/
.......
Socket skt = new Socket(serverIP, ports);
.......
}
......
}
.............
}
作者: s06yji3 (阿南)   2014-07-01 07:17:00
個人經驗是先確定serverIP有沒有東西,再來資料type是不是String因為看起來判定都是false
作者: qrtt1 (有些事,有時候。。。)   2014-07-01 07:54:00
物件相等性不是用 == 做的啊....
作者: ntwu (CEO)   2014-07-01 08:31:00
我印出來確定ip有東西,只是port號沒有根據我的if else所判斷的方式去指定port號
作者: LPH66 (-6.2598534e+18f)   2014-07-01 08:51:00
問題就是四樓所講的...比較字串相等要用 .equals
作者: ntwu (CEO)   2014-07-01 10:17:00
用equals解決了 感謝
作者: Killercat (殺人貓™)   2014-07-01 15:12:00
附帶一題 這block縮排最好改一下 這寫法太恐怖了
作者: NullLife (廢材大叔有點累)   2014-07-02 00:31:00
物件命名通常會用大寫開頭...然後建議原PO去搞懂 == 跟 .equals 差別在哪這是JAVA很基本的觀念
作者: DeathWatch (愛情模糊理論)   2014-07-02 14:47:00
基礎先搞懂...
作者: Killercat (殺人貓™)   2014-07-02 17:57:00
其實我猜原po是寫python出身的.....
作者: s06yji3 (阿南)   2014-07-03 07:29:00
受教了!剛接觸JAVA竟然也沒注意到!

Links booklink

Contact Us: admin [ a t ] ucptt.com