Articles of java 8

Когда будут поддерживаться методы по умолчанию (Java 8) в Android?

Мне было интересно, могу ли я использовать методы по умолчанию в интерфейсах в разработке Android. Эта функция включена в Java 8, но я обнаружил, что Android Java VM еще не поддерживает ее. Это там любой способ использовать методы по умолчанию в Android-разработке? Если нет, когда эта функция будет доступна, есть ли какая-то временная шкала для […]

Android URLConnection.setRequestProperty () в студии Android не похоже на что-либо

Я посмотрел исходный код для URLConnection.setRequestProperty() в студии android, и похоже, что он ничего не устанавливает: public void setRequestProperty(String field, String newValue) { checkNotConnected(); if (field == null) { throw new NullPointerException("field == null"); } } И здесь checkNotConnected (): private void checkNotConnected() { if (connected) { throw new IllegalStateException("Already connected"); } } Что мне […]

Выраженное лямбда-выражение Джека не использует более эффективный подход, когда значение minSdkVersion установлено равным 24

Я сейчас смотрю на байт-код, который компилятор jack генерирует для лямбда-выражений. Давайте рассмотрим следующий простой Java-класс: public class ForEach { public static void main (String[] args) { ArrayList<String> list = new ArrayList<>(); list.add("hello"); list.forEach(s -> System.out.println(s)); } } При использовании javac JDK 1.8 он генерирует следующий байт-код: public class ForEach minor version: 0 major version: […]

Android-библиотека не работает с Java 8

проблема Поскольку я переключился на Java 8 в Android Studio 3.0, библиотека ShineButton больше не работает в моем проекте. java.lang.NoClassDefFoundError: Failed resolution of: Landroid/animation/Animator$AnimatorListener$$CC; Я получаю эту ошибку при использовании ShineButton в своем приложении в этой части библиотеки. Поскольку эта ошибка произошла с моим обновлением до Java 8, и я прочитал о некоторой подобной ошибке […]

Сбои тестов для Android после обновления до Java 8 и сборки инструментов версии 25

У меня было множество тестовых примеров, которые работали нормально. Но как только мой проект был обновлен для создания инструментов версии 25, а Java был обновлен до JDK 1.8, все мои тестовые примеры терпят неудачу. Когда я запускаю свои тесты, я использую ./gradlew cAT, я получаю сообщение об ошибке: Ошибка инструментария не удалась из-за «java.lang.NullPointerException» com.android.builder.testing.ConnectedDevice> […]

Stream () не работает в android

Как я могу преобразовать это утверждение из классического java в android Collection<Integer> p1; int sum = p1.stream().mapToInt(Integer::intValue).sum(); Я интегрирую Java 8 и лямбда в свое приложение для Android, но он по-прежнему не работает. Метод stream () не найден в android. Вы можете мне помочь?

Я не могу установить JDK 1.8 в AndroidStudio

Я загрузил и установил jdk 1.8, но когда я пытаюсь установить путь к jdk 1.8 в ProjectStructure -> Местоположение JDK, AndroidStudio проигнорировала его, поэтому после заданного пути Нажмите «ОК» и снова откройте окно «ProjectStructure». Я снова вижу jdk 1.7.

Использование лямбда-выражений с нефункциональными интерфейсами в Java

У меня есть куча анимационных прослушивателей в моем коде, где большую часть времени использовал только один метод в интерфейсе. Поэтому я создал эту оболочку: public class AnimationWrapper { private Animation mAnimation; public AnimationWrapper(Animation animation) { mAnimation = animation; } public Animation getAnimation() { return mAnimation; } public interface OnAnimationEnd { void onAnimationEnd(Animation animation); } public […]

Невозможно реорганизовать методы с подчеркиванием в качестве параметра в лямбда?

У меня есть тонна классов с одним методом (половина из них не использует их параметр и, следовательно, называет его подчеркиванием), и я просто переключился на Java 8. Теперь я хочу заменить их на lambdas. Вот мой код: interface I { void stuffHappened(Integer howManyStuff); } public class A { void go() { I i = new […]

Как установить исходную версию библиотеки Java в проекте Android Studio

У меня есть проект Android, разделенный на чистую библиотеку Java и приложение для Android. Я использую Gradle Retrolambda, поэтому я могу написать код Java 8. Android Studio 1.3 правильно распознает android.compileOptions.sourceCompatibility в модуле Android, который я установил для JavaVersion.VERSION_1_8 . Теперь я хотел бы, чтобы Android Studio осознала, что Java-модуль также является Java 8. Я […]