2011-10-25 12 views
0

別の問題があります。地図全体を渡す方法

オブジェクトとその関連するキーのマップ全体を送信して、別のクラスからアクセスできるようにしようとしています。私が使用しているメソッドは動作しません。配列リストを渡すのと同じメソッドを使用しようとしましたが、Mapでは機能しません。

これを行う正しい方法は何ですか?

は、これは私が

public Map <Integer, Employee> getAllEmps() 
{ 
    return (Map <Integer, Employee>) ; 
} 

を試してきたものであり、これは(実際のマップ自体)あなたがマップインスタンス、ないタイプを返す必要が

private static Map <Integer, Employee> employeeMap = new TreeMap<Integer,Employee>();  
+0

コンパイラが何が間違っているか教えてください。どのようなエラーメッセージが表示されますか? – shyam

+0

doesnのを返すべきである – jackrabbit

+0

私は好奇心が強いです、あなたはJavaを研究するためにどのような本/リソースを使用していますか? –

答えて

2

あなたは、変数自体を返すことができます。あなたはコピーを返すことができ、また

public Map <Integer, Employee> getAllEmps() 
{ 
    return Collections.unmodifiableMap(employeeMap); 
} 

変更を防止するには、unmodifiableMapを返すことができます

public Map <Integer, Employee> getAllEmps() 
{ 
    return new TreeMap<Integer,Employee>(employeeMap); 
} 
あなたが戻っ `employeeMap`の代わりに、空の型キャスト
+0

これらのメソッドは便利です。 – Binyomin

+0

私はMainDriverクラスでメソッドを作成しました。他のクラスからアクセスしたいと思います。このコード行はうまくいかないようですが、どうすれば正しくできますか? theEmployeeMap = MainDriver.getAllEmps(); – Binyomin

+0

は正しい –

2

私はそれを宣言した方法です。

public Class SomeClass{ 
    private static Map<Integer,Employee> employeeMap=...; 

    //Other methods 


    public Map <Integer, Employee> getAllEmps() 
    { 
     return employeeMap ; 
    } 
} 

あなたは(なしキー付き)のみの従業員をしたい場合は、あなたのgetAllMaps()関数は、実際にマップを返す必要

public Collection<Employee> getEmployees(){ 

    return employeeMap.values(); 
    } 
0

別のメソッドを追加することができます。静的なemployeeMapを返すことを意味しますか?

+0

Oh hello again Dave Nah、地図を返すだけです。 – Binyomin

+0

MainDriverクラスでメソッドを作成しましたが、他のクラスからアクセスしたいと思います。このコード行はうまくいかないようですが、どうすれば正しく行えますか?私は明らかにtheEmployeeMapを宣言しました theEmployeeMap = MainDriver.getAllEmps(); – Binyomin

+0

@Binyominその構文はインスタンスメソッドではなく静的メソッドを意味します。 –

1

なぜ変数自体を渡して、マップをメンバー変数として使用してみませんか?

public Map <Integer, Employee> getAllEmps() 
{ 
    return employeeMap; 
} 

誰でもマップのcontnentを変更することができます:

private Map <Integer, Employee> employeeMap = new Map <Integer, Employee>();  
public Map <Integer, Employee> getAllEmps() 
{ 
    return employeeMap; 
} 
+0

私にこれを明確にしてくれてありがとう。 – Binyomin

+0

新しいTreeMap () –

+0

@MauricePerryあなたは正しいでしょう。入力ミスを申し訳ありません。 – Efthymis

関連する問題