2016-01-09 1 views
1

Я на 100% новичок в Java, и я пытаюсь добавить Crashlytics в свой проект React Native. Единственный фрагмент кода, который я мог найти в Интернете, это синтаксис retrolambda.Как написать это без синтаксиса «retrolambda»?

Я понимаю, что могу добавить эту конкретную «библиотеку» или что-то еще, поэтому она работает, но, учитывая, что это единственное место, которое используется в моем проекте, я бы скорее просто преобразовал его в «старый формат», а не добавлял только библиотеку для выполнения одной функции.

public final class AppReactPackage implements ReactPackage { 

    @Override 
    public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) { 
    addExceptionHandler(reactContext); 
    } 

    private void addExceptionHandler(ReactApplicationContext reactContext) { 
    // Fyi, this is using Retrolambda for Java 8 syntax 
    reactContext.setNativeModuleCallExceptionHandler(e -> { 
     if (e instanceof JavascriptException) { 
     Crashlytics.log(e.getMessage()); 
     } else { 
     Crashlytics.logException(e); 
     } 
    }); 
    } 
} 
+0

Вы могли бы указать, где вы изначально нашли этот фрагмент? – Barnabus

ответ

3

Поиск синтаксис Я нашел эти две ссылки:

  1. React
  2. NativeModuleCallExceptionHandler

Используя те, он должен выглядеть следующим образом: (непроверенные)

private void addExceptionHandler(ReactApplicationContext reactContext) { 
    reactContext.setNativeModuleCallExceptionHandler(new NativeModuleCallExceptionHandler() { 
     @Override 
     public void onHandleException(Exception e) { 
      if (e instanceof JavascriptException) { 
       Crashlytics.log(e.getMessage()); 
      } else { 
       Crashlytics.logException(e); 
      } 
     } 
    }); 
} 
+0

Ух ты, герой, позволь мне попробовать это – Tallboy

+0

Рад помочь! ура –