2016-07-29 18 views
0

一個類的對象可以說我有一類用戶:引用在java中

public class User { 
    String userID; 
    String password; 
    Integer connectID; 
    String name; 

    public User(String Name, String ID, String Pass, Integer connect) { 
     userID = ID; 
     password = Pass; 
     connectID = connect; 
     name = Name; 
    } 

    public String getUserID() { 
     return userID; 
    } 

    public String getPassword() { 
     return password; 
    } 

    public Integer getConnectID() { 
     return connectID; 
    } 

    public String getName() { 
     return name; 
    } 
} 

我有我的代碼段,這需要一定的對象的connectID,並把它變成一個varaible connectionID = (accounts.get(i)).getConnectID();其中accounts是一個ArrayList包含所有創建的對象。是否有辦法讓我使用connectionID變量以另一種方法再次與對象關聯textWindow.append("localhost." + ... + getDateTime() + " > ");其中...部分是我想要使用getConnectID()方法的部分。

+2

不是將connectID定義爲Integer,而是將其包含在包含對User對象的引用的對象中? – prasanth

+0

你能包括你的問題的相關代碼嗎? –

+0

@TimBiegeleisen還有哪些其他相關代碼可以包含? – Shaydoth

回答

1

不要將connectionID作爲變量存儲。它已存儲在User對象內。相反,存儲User作爲一個變量,所以它的內容可以稍後再訪問:

//Before the for loop, in a wider scope, declare the User: 
User user; 
//Then, in the for loop, initialize it: 
user = accounts.get(i); 
//As it was declared outside the for loop, it can be accessed later: 
textWindow.append("localhost." + "User ID: " + user.getConnectionID() + " at " + getDateTime() + " > ");//or however you wish to format it 
0

這裏是一個可能的解決方案是從Integer改變connectionID類型類創建

class ConnectionID { 

    private final Integer id; 
    private final User user; 

    ConnectionID(final Integer id, 
       final User user) { 
     this.id = id; 
     this.user = user; 
    } 

    public getUser() { 
     return this.user; 
    } 

} 

現在您可以通過給定連接標識與用戶聯繫。

0

假設connectID對每個User都是唯一的。您可以循環訪問accounts並比較connectID

public User getUser(int connectID){ 
    for (User user : accounts){ 
     if (user.getConnectID()==connectID){ 
      return user; 
     } 
    } 
    return null; 
}