[英]Stuck on how to add to a list in another class
我有一個類 DB,其中包含一個列表:
private List<User> users;
以及允許將用戶添加到列表的 addUser 方法
public User addUser(String name) {
另一個類 User 需要創建 User 類的實例,所以我嘗試使用以下代碼:
public User(String name) {
DB.addUser(name);
但它返回的錯誤是我無法對非靜態方法進行靜態引用。 我不知所措,因為要創建 User 類的實例,我必須將其放入列表中,但是由於列表是私有的,我必須使用 DB 的方法,但是如果沒有得到錯誤...有什么辦法可以解決這個問題嗎?
這里的這個函數是以靜態方式調用addUser
。
public User(String name) {
DB.addUser(name);
}
但是下面的這個函數需要實例化一個對象才能調用它(非靜態)
public User addUser(String name) { ... }
所以改成
public static User addUser(String name) { ... }
或創建一個 DB 實例並調用該方法
public User(String name) {
DB db = new DB();
db.addUser(name);
}
似乎有些基礎知識您不清楚。
成員始終是私有的,要與它們交互,您應該創建公共的 setter 和 getter。
公共列表 getUsers(){ 返回用戶; }
public void getUsers(List users){ this.users=users; }
作為一個好的編碼標准,命名應該描述提供特定動作的行為因此
用戶添加用戶(字符串名稱)
考慮到它的實際實現,因為給定將 User 添加到列表中,這似乎非常模棱兩可。
如果 DB 類是一個依賴項,那么它應該被實例化讓我們假設您從 main 調用此代碼
用戶用戶=新用戶(); DB dbInstance=new DB(); dbInstance.setUsers(new ArrayList()); dbInstance.getUsers().add(user);
提供更具體的答案,等待進一步要求的詳細信息
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.