equals
基本上用於對象的非基元。
==
用於基元。
所以,你可以用它
public static boolean checkStatus (int a) {
if (a == 10)
return true;
return false;
}
例1: 對於對象,如果equals方法將被覆蓋,然後 「等於」 方法將返回true。
public class Employee {
int id;
@Override
public boolean equals(Object obj) {
Employee e = (Employee) obj;
return id == e.id;
}
Employee(int id) {
this.id = id;
}
public static void main(String[] args) {
Employee e1 = new Employee(5);
Employee e2 = new Employee(5);
System.out.println("e1.equals(e2) is: " + e1.equals(e2));
System.out.println("(e1 == e2) is: " + (e1 == e2));
}
}
輸出:
e1.equals(E2)是:真
(E1 E2 ==)是:假
實施例2 : 對於對象,如果equals滿足HOD不被重寫時,那麼 「等於」 方法的工作方式 「==」
public class Employee {
int id;
Employee(int id) {
this.id = id;
}
public static void main(String[] args) {
Employee e1 = new Employee(5);
Employee e2 = new Employee(5);
System.out.println("e1.equals(e2) is: " + e1.equals(e2));
System.out.println("(e1 == e2) is: " + (e1 == e2));
}
}
輸出:
e1.equals(E2)是:假
(E1 == e2)爲:false
這裏「equals」方法的工作方式爲「==」。所以,不要忘記重寫對象的equals方法。
編譯錯誤告訴你什麼? –
檢查編輯,對不起 – user3029345
if(a.equals(10))是一個字符串比較。不是整數。請在if條件下遵循== 10 –