簡體   English   中英

為什么在此ArrayList中不輸出用戶的屬性?

[英]Why is this not outputting my user's properties in this ArrayList?

因此,該程序未指定任何錯誤,但未輸出我想要的內容。 我制作了一個數組列表,該列表應該輸出用戶的詳細信息,包括用戶名,用戶類型和名稱。 我已經在我的main方法中調用了該類,但是沒有任何輸出。 我是Java的新手,所以如果有人可以幫助我解決此問題,以便它編譯用戶的屬性,那么這對我自己以及可能遇到同一問題的其他初學者都是很有幫助的。 這是代碼:

UserGroup類(在其中創建ArrayList的類)

package main;
import java.util.ArrayList;

public class UserGroup {

    ArrayList<User> userGroup = new ArrayList<>();
    User userOne;

    public void addSampleData(String username, String userType, String name) {

    userGroup.add(new User("LeeB123", "Staff", "Lee"));

}

    public User getUser(int index)  {

    return userGroup.get(0);

}

    public void printusername(){

       for (User x : userGroup) {
    System.out.println(x);
} }
}

用戶類別

package main;
class User {

  String username;
  String userType;
  String name;


    User(String username, String userType, String name) {

    this.username = username;
    this.userType = userType;
    this.name = name;
    }

  public String getUsername() {
      return username;
  }

  public String getUserType() {
      return userType;
  }

   public String getName() {
      return name;
  }

  public String setUserType(String admin) {
      return userType = admin;
  }

}

主班

package main;

public class Main {
 public static void main(String[] args) {

    public User callUserGroup; {  

     UserGroup userGroupObject = new UserGroup();

 System.out.println(userGroupObject.getUser(0)); 
 }

}

我了解某些部分可能無關緊要/效率不高或沒有必要,但我是一個初學者,因此我仍然習慣使用這些概念,因此,非常感謝您的幫助。

未首先調用添加sampledatamethod。 因此,您的列表中沒有數據。

您需要添加構造函數或顯式調用userGroup.addSampleData()方法。

像這樣添加構造函數:

 public UserGroup() {

    userGroup.add(new User("LeeB123", "Staff", "Lee"));

}

或致電您的主班:

userGroupObject.addSampleData("L1",""staff", "LEE");

我將細分UserGroup類和主要類的一些問題。

UserGroup類別 :基本上,這是一組用戶。 因此,您唯一需要的屬性是“用戶的ArrayList”。 這里缺少的主要是構造函數 您無法創建新的UserGroup對象。 我做了一個userGroup任何東西的構造函數,並向userGroup添加了一些數據。 addSampleData方法中,您將獲取三個字符串變量,然后使用這些變量創建一個新的User對象,並將其添加到userGroup 由於userGroup Array由User對象組成,因此我將傳入變量從三個字符串變量更改為一個User變量。 我將名稱addSampleData方法更改為addUser 以下更改應解決剛才描述的問題。

編輯:向UserGroup類添加了缺少的getUserGroup()屬性getter。

ArrayList<User> userGroup = new ArrayList<>();
// User userOne;
public UserGroup()
{
  addUser(new User("LeeB123", "Staff", "Lee"));
  addUser(new User("XLeeB123", "XStaff", "XLee"));
  addUser(new User("XXLeeB123", "XXStaff", "XXLee"));
}

public void addUser(User inUser)
{
  //userGroup.add(new User("LeeB123", "Staff", "Lee"));
  userGroup.add(inUser);
}
public ArrayList<User> getUserGroup() {
    return userGroup;
}

主要方法:由於userGroupObject具有一個User對象數組,因此我在每個循環中使用a來輸出userGroupObject中的所有Users。

//public User callUserGroup;   
UserGroup userGroupObject = new UserGroup();

for (User curUser : userGroupObject.getUserGroup())
{
   System.out.println(curUser.toString()); 
}

編輯2: toString方法添加到用戶類。

@Override
public String toString() {
    return "User username=" + username + ", userType=" + userType + ", name=" + name;
}

希望這可以幫助。

暫無
暫無

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

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