問題

我建立了兩個類,一個驅動程式和一個GUI幀類.在Driver類中,我放置了使用者物件的arrayList.但是當從GUI幀類呼叫方法時,返回的值為0.

我已經嘗試使用每個迴圈隱式比較每個物件.

這是我用來將臨時使用者的物件與現有使用者進行比較的方法.

 public boolean confirm(boolean loggedIn, int tempStudentNo, int tempPin) {

    //Creation of temporary object for comparison with existing one
    DriverMain temp = new DriverMain(tempStudentNo, tempPin);

    if (getCreation().contains(temp)) {
        System.out.println("user pass");
        setLoggedIn(true);
    } 

    else {
        System.out.println("user fail");
    }
    return loggedIn;

} 
 

我希望使用者傳遞.但結果總是“使用者失敗”. 任何幫助將不勝感激:)

  最佳答案

這個答案基於您對評論的答覆:“您的DriverMain類是否覆蓋equals方法?”

為了使用(Array)List,HashTable,HashSet或HashMap等,您需要覆蓋DriverMain類中的“幾個”方法。 對於 List、Set 等 .. 和其他一些 Collection Types 或 Map/HashTable 來評估物件是否是其內容的成員,您需要提供一種方法來比較傳遞給它的物件和它目前持有的物件。

清單
2001年12月31日終了的兩年期收入和支出及準備金和基金結餘變動報表 contains(Object o) 方法使用 Object's equals(Object o) 方法將 Object o 與 Object x(列表集合的成員)進行比較。

關於這方面的更多資訊,請訪問以下連結: https://docs.oracle.com/javase/tutorial/java/IandI/objectclass.html https://docs.oracle.com/javase/tutorial/collections/interfaces/list.html

設定
2001年12月31日終了的兩年期收入和支出及準備金和基金結餘變動報表 contains(Object o) 方法使用 Object 的 hashCode()equals(Object o) 方法將 Object o 與 Object x (Set Collection的成員)進行比較。

關於這方面的更多資訊請訪問以下連結: https://docs.oracle.com/javase/tutorial/java/IandI/objectclass.html https://docs.oracle.com/javase/tutorial/collections/interfaces/set.html

地圖
2001年12月31日終了的兩年期收入和支出及準備金和基金結餘變動報表 containsKey(Object o)方法使用物件的hashCode()equals(Object o)方法將物件o與任何物件x(Map Interface的成員)進行比較。

關於這方面的更多資訊請訪問以下連結: https://docs.oracle.com/javase/tutorial/java/IandI/objectclass.html https://docs.oracle.com/javase/tutorial/collections/interfaces/map.html

重要說明 有更多的方法來處理這種情況,所有這些都取決於它的實現.例如:TreeSetTreeMap不使用hashCode()方法.

  相同標籤的其他問題

javaequals