2017-11-23 14 views
0

以下の方法を考えてみましょう。遺伝子マップ属性==を持つ項目をフィルタリングするジェネリックマップのアイテムをValue(これは自分のコードではありません):一般的なHashMapをフィルタリングする方法を使用する方法 - Java

問題:このメソッドを呼び出す方法はありますか?

私は、静的でないメソッド 'getColor()'を使って 'Car'というクラスを持っているとしましょう。私は、オブジェクトを持っている「myHashMap」、それは車のマップで、私は例えば、私のmyHashMap内部の赤い車のリストを取得したい

HashMap<Integer, Car> myHashMap ; 

のように宣言しました。

+0

'car'は名前のですラムダ関数のパラメータ。 Javaのlambdasに精通していない場合は、OracleのJavaチュートリアルを参照してください。 – dasblinkenlight

+0

getObjectWithAttributeEqualToのシグニチャーを参照してください。そこでは、このメソッドの2番目のパラメータがFunction型であることがわかります。次に、car - > car.getColor()はFunctionのインスタンスです。 – P3trur0

+0

私もあなたの問題を再現することはできません。 – Henrik

答えて

1

このコードは、Eclipseの酸素で正常に動作します、私はあなたのIDEがあなたに '静的ません' というエラーを与えて間違っていると思う:

List<Car> redCars = getValuesWithAttributeEqualTo(myHashMap, Car::getColor, "red"); 
+0

私はNetbeansを使用しています。 – Fausto70

+0

私はもう一度tryedして、私は間違いなくエラーを取得します:非静的メソッドgetColor()は静的コンテキストから参照することはできません – Fausto70

0

FOUND SOLUTION:

List<Car> redCars = Utilities.getObjectWithAttributeEqualTo(myHashMap, object->object.getColor(), "red"); 
関連する問題