簡體   English   中英

如何僅修復循環中的最后一個對象在 Java ArrayList 中重復

[英]How to fix only last object from loop being duplicated in Java ArrayList

我正在處理一個項目,在該項目中我循環遍歷數據庫並將“配置文件”對象添加到數組列表 (searchResults),但由於某種原因,通過循環遍歷結果集創建的最后一個對象在數組列表中重復。 請參閱下面的代碼片段:

public static ArrayList<Profile> searchResults;


public void showSearchResults(){
    searchResults = new ArrayList<>();        
    searchResults.clear();

    try {
        // create SQL statement object for query
        statement = Connect.toDatabase();

        resultSet = statement.executeQuery (SQL query here)

        while(resultSet.next()){
            Profile newProfile = new Profile();

            newProfile.setUsername(resultSet.getString("username"));
            newProfile.setFirstName(resultSet.getString("first_name"));
            newProfile.setLastName(resultSet.getString("last_name"));
            newProfile.setGender(resultSet.getString("gender"));
            newProfile.setAge(String.valueOf(resultSet.getInt("age")));
            newProfile.setCity(resultSet.getString("city"));                

            searchResults.add(newProfile);
        }

    } catch (SQLException e) {
        // print out exceptions
        e.printStackTrace();
    } finally {
        // close the connections
        Connect.closeConnection(statement, resultSet);
        showResults = true;
    }
}


public ArrayList<Profile> getSearchResults() {
    return searchResults;
}

對此問題的任何幫助將不勝感激。 提前致謝

這是因為您已將配置文件類中的 edit: 屬性聲明為static ,並且作為一般規則,靜態屬於類而非靜態屬於對象。

如果您只有一個實例要使用該方法,則靜態方法很有用。

由於您在這里有多個實例(對象)= 這不是您想要的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM