2017-01-15 7 views
1

現在、Mapクラスから "computeIfAbsent"メソッドを継承しようとしています。私が知っているようにMapはインターフェイスクラスであり、HashMapオブジェクトはMapクラスから継承することになっています。しかし、私は方法を継承することはできません。HashMapオブジェクトはMapクラスから "computeIfAbsent"メソッドを継承できません

private Map<PointF, Map<Character, PointF>> function = new HashMap<>(); 

シモンズ::

私の目的である私は、Androidのメーカーに取り組んでいますし、私のJDKがある:1.8.0_11

+0

FWIWは、あなたが本当に継承を理解していないように思えます。インターフェースはクラスではなく、 'HashMap' *は' Map'を実装しており、あなたは「メソッドを継承できません」ということを全く記述しませんでした。 – chrylis

+0

は、Android開発者のウェブサイトの "HashMap"クラスのドキュメントで、 "HashMap"オブジェクトが "Map"クラスのメソッドを継承すると言われています – user2982112

+1

そして、どのAndroid SDKレベルですか? – chrylis

答えて

3

computeIfAbsentは、Java 8で追加されましたし、前のAndroidで使用することはできませんSDKレベル24

あなたはは、Java 8互換のAndroid SDKを使用してであることを仮定すると、あなたのMap変数がそれにcomputeIfAbsentを持つことになりますし、あなたがCAにできるはずですl

Map<Character, PointF> points = function.computeIfAbsent(fooPoint, supplier); 
// "function" is a bad name for a map variable 
+1

実際には、それはAndroidに存在しますが、APIレベル24の場合に限ります。したがって、 'minSdkVersion 24'アプリケーションで使用できます。 – CommonsWare

+0

@CommonsWare Forgot Nougat。 – chrylis

関連する問題