2016-08-14 11 views
1

私はその特定のスタッフのロールのリストを含むStaffクラスを持っています。スタッフのオブジェクトを保持するstaffListもあります。別のクラスの中でarrayListから要素を取得

クラスの特定のインスタンスのロールリストから要素を取得するにはどうすればよいですか?私が試してみました

:staffListの最初の要素からrolesListの最初の要素であるが、それは単にヌルruturnsすべき

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

は、私も試してみました:私はちょうどそれが何の問題も表示されませんGETインデックスを使用してrolesListから直接値を取得する場合

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

はすべてが

nullを返します。

は、私はそれがrolesListのバージョンではなく、私は新しいスタッフメンバーと私が構築したときに、リストを使用したRoleListで役割を作成している

その特定のStaffオブジェクトであるものを得ていると思います

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; 
    } 
:それはたRoleList内から値を返す必要がありますが、それはないインデックスを取得し、そのオブジェクトのgetRolesListメソッドを使用して、スタッフのオブジェクト、

私は基本的に、testdriverオブジェクト内のオブジェクトのロールリストから格納されたロールを取得したいと思っています。

testDriver - >のRoleList - > Role.DRIVER(または役割があることを起こるものは何でも)

+0

..取得しようと次にstaffListをしたいすべての を追加します。..スタッフのリストにあなたのスタッフのオブジェクトを追加したいと思います'は他のオブジェクトとは関係ありません。あなたは何かをペーストするために行方不明ですか? – Lucio

+0

'getRolesList()'関数からコードをペーストできますか?あなたが使用したコードの例がそれ以上ないと問題が何であるかは不明です – discipline

答えて

0

は、(a)は我々がstaffListtestDriverを追加するコードの行が表示されません。

staffList.add(testDriver); 

(b)にあなたはgetRolesListへお電話の上に括弧が欠落しています。

(c)いくつかの基本的なデバッグが必要です。

    staffList
  • スタッフroles
  • のS = staffList.get(0)
  • リストの役割= s.getRolesList()
  • サイズの
  • サイズ:デバッガでまたは余分なコードでは、見て

ボーナスチップ... をRoleに使用しているようです。その場合は、ListではなくEnumSetを使用して、メモリの使用量を減らし、実行を高速化することを検討する必要があります。 EnumSetSetの特殊な実装です。 another Questionについてさらに議論します。あなたの問題の一部ではなく、ただのヒント。

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

あなたがはっきりしていない、あなたの完全なソース... を与えることができます。私はuはそれが

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

である場合には、 `、私は、コードの最後の部分で見ることができるように

関連する問題