【问题标题】:How do I write this without 'retrolambda' syntax?没有'retrolambda'语法我怎么写?
【发布时间】:2016-01-09 17:57:37
【问题描述】:

我是 100% 的 Java 新手,我正在尝试将 Crashlytics 添加到我的 React Native 项目中。我在网上能找到的唯一代码 sn-p 是 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);
      }
    });
  }
}

【问题讨论】:

  • 你能链接到你最初找到这个sn-p的地方吗?

标签: java android react-native retrolambda


【解决方案1】:

搜索你的语法我找到了这两个链接:

  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);
            }
        }
    });
}

【讨论】:

  • 哇你是个英雄,让我试试这个
猜你喜欢
  • 1970-01-01
  • 2021-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-09
  • 1970-01-01
相关资源
最近更新 更多