簡體   English   中英

從另一個類中的arrayList獲取一個元素

[英]Get an element from arrayList inside another class

我有一個Staff類,其中包含該特定工作人員的角色列表。 我也有staffList來保存員工對象。

如何從該類的特定實例的rolesList中獲取一個元素?

我努力了:

staffList.get(0).getRolesList().get(0)

哪個應該是staffList的第一個元素中的rolesList的第一個元素,但它只是ruturns null。

我也嘗試過:

rolesList.get(staffList.get(0))
rolesList.getIndexOf(staffList.get(0).getRolesList.get(0)

全部返回null

如果我只是使用get index直接從rolesList獲取值,它將顯示沒有問題。

我認為它是獲取rolesList的一個版本,但不是該特定Staff對象中的版本

我在roleList中創建了一個新的Staff成員和一個角色,然后在構造staff對象時使用了列表,所以使用該對象的getRolesList方法然后獲取索引它應該從roleList中返回值,但它不是' T:

private List<Staff> staffList = new ArrayList();
ArrayList<Role> roleList = new ArrayList();
roleList.add(Role.DRIVER);
testDriver = new Staff("Mike", "Joy", roleList);
testStaffList.add(testDriver); 

GetRolesList()代碼

public List<Role> getRoleList() {
        return roleList;
    }

我基本上想從testdriver對象中的對象rolelist中獲取存儲的Role。

testDriver - > roleList - > Role.DRIVER(或者角色恰好是什么)

(一)我們沒有看到的代碼添加行testDriverstaffList

staffList.add( testDriver );

(b)你在調用getRolesList缺少parens。

(c)你需要做一些基本的調試。 在調試器或額外代碼中,請查看:

  • staffList大小
  • 員工s = staffList.get(0)
  • 列表角色= s.getRolesList()
  • roles大小

獎金提示......顯然你正在使用Role枚舉 如果是這樣,您應該考慮使用EnumSet而不是List來減少內存使用和執行速度。 EnumSetSet一個專門實現。 關於另一個問題的更多討論 不是你的問題的一部分,只是一個提示。

Set<Role> roles = EnumSet.of( Role.DRIVER , Role.MECHANIC );
Staff testDriver = new Staff( "Mike" , "Joy" , roles );

你能給出完整的資料來源嗎......目前尚不清楚。 我想你想把你的員工對象添加到員工名單中..如果是的話

Stafflist.add(new Staff("a","b",role list));

添加你想要的所有然后嘗試得到..

暫無
暫無

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

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