我有一个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 Member和一个角色,然后在构造staff对象时使用了列表,所以使用该对象的getRolesList方法然后获取索引它应该从roleList中返回值但是它不是:
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对象中的对象角色列表中获取存储的角色。
testDriver - &gt; roleList - &gt; Role.DRIVER(或角色恰好是什么)
答案 0 :(得分:0)
(a)我们没有看到将testDriver
添加到staffList
的代码行。
staffList.add( testDriver );
(b)您在致电getRolesList
时失踪了。
(c)你需要做一些基本的调试。在调试器或额外代码中,请查看:
staffList
roles
额外提示......显然您使用的是enum Role
。如果是这样,您应该考虑使用EnumSet
而不是List
来减少内存使用和执行速度。 EnumSet
是Set
的专门实现。关于another Question的更多讨论。不是你的问题的一部分,只是一个提示。
Set<Role> roles = EnumSet.of( Role.DRIVER , Role.MECHANIC );
Staff testDriver = new Staff( "Mike" , "Joy" , roles );
答案 1 :(得分:0)
你能全力以赴吗? 那不清楚。我想你想把你的员工对象添加到员工列表中..如果是
Stafflist.add(new Staff("a","b",role list));
添加你想要的一切 然后试着去......