2017-01-15 2 views
1

В настоящее время я пытаюсь наследовать метод computeIfAbsent из класса Map с помощью объекта HashMap. Поскольку я знаю, что Map - это класс интерфейса, а объекты HashMap должны наследовать из класса Map. Но я не могу наследовать метод.Объект HashMap не может наследовать метод computeIfAbsent из класса карты

мой объект:

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

Ps: Я работаю на Android Studio и мой JDK является: 1.8.0_11

+0

FWIW, похоже, вы действительно не понимаете наследование. Интерфейсы не являются классами, 'HashMap' * реализует *' Map', и вы вообще не описали, что означает «не наследуть метод». – chrylis

+0

в документации на класс «HashMap» на веб-сайте разработчика Android, говорится, что объекты «HashMap» должны наследовать методы из класса «Карта» – user2982112

+1

И какой уровень Android SDK? – chrylis

ответ

3

computeIfAbsent был добавлен в Java 8, и не может быть использована в Android, прежде уровень SDK 24.

Предположив, что вы являются с использованием Java 8-совместимый Android SDK, ваша Map переменная будет иметь computeIfAbsent на него, и вы должны быть в состоянии ок ll

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 Забыл Нуга. – chrylis

Смежные вопросы