我们现在应该使用Java 8进行Android开发吗?

时间:2018-07-08 07:41:48

标签: android

与此有关的其他问题已有两年多了,因此,我想知道Java 8与Android的关系。

具体地说,我只想使用lambda表达式作为开头。我想将以下代码重构为lambda表达式:

 Handler handler = new Handler(Looper.getMainLooper());
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                missileX = ufoX;
                resetRecent();
                waitForUfoTimer = false;
            }
        }, randomize(20000, 18000));

3 个答案:

答案 0 :(得分:2)

  

我们现在应该使用Java 8进行Android开发吗?

是的。您需要在build.gradle模块中添加以下行

android {
   compileOptions {
       sourceCompatibility JavaVersion.VERSION_1_8
       targetCompatibility JavaVersion.VERSION_1_8
   }
 ..
}

现在默认情况下,Android Studio支持使用Java8语言功能。现在您不需要杰克了。您必须具有Android Studio插件3.0.0或更高版本。

答案 1 :(得分:2)

是的,我认为您应该这样做。它带来了一些不错的功能,例如lambda表达式或方法引用或流(尽管并非每个版本都支持),这使代码变得更加整洁。另一方面,对于某些人来说,整洁可能不被视为优势,因为它被认为可读性较差。此外,您的Gradle Android插件必须至少为3.0.0,并非每个项目都可以选择。

如前所述,如果您的JAVA 8版本低于24,则不支持minSdk的某些功能。

任何minSdk支持什么:

  1. Lambda表达式
  2. 方法参考
  3. 类型注释
  4. 默认和静态接口方法。
  5. 重复注释

有关更多信息,请参阅-https://developer.android.com/studio/write/java8-support

答案 2 :(得分:1)

是的,使用lambda表达式等语言功能绝对可以。只需更改设置以反映版本8。

但是,某些Java 8 API对于较旧的android版本不可用。例如Java LocalDate。如果您定位到足够高的android版本(我相信是26),那么它将起作用,否则,您将不得不使用java Date或joda timsb