在AndroidStudio中设置某项目支持使用Java 8 新特性

简介: 在AndroidStudio中设置某项目支持使用Java 8 新特性

在AndroidStudio中设置某项目支持使用Java 8 新特性

( eg:Lambda 表达式)


(注:如果你是个心急的同学,那就直接看本文的第3点吧——“快捷设置项目支持使用java8的方式”。)


1.情景描述


在AndroidStudio中新建一个项目,以设置支持Lambda表达式为例,写一段Lambda表达式代码。如图:


(注:以下截图中的项目代码,并没有实际运行意义,只是为了说明如何设置、使用支持Java 8的Lambda表达式。)


创建项目:

image.png


附上一段可以变形为Lambda表达式的代码


image.png


如果直接写出Lambda表达式会提示错误,如图:


image.png


2.手动设置支持使用Java8新特性


设置支持使用java8新特性有一个大前提就是,计算机中已安装java8 JDK软件并配置好了相关的环境变量。


为了使AndroidStudio中的上述项目支持使用java8新特性:Lambda表达式等,设置步骤如图:


先找到设置入口,有三种途径:


1)File -----> Project Structrue……

image.png


2)选中项目,鼠标右键……


image.png


3)这是最快捷的设置入口。


image.png


下面正式开始设置步骤,如图:

(第四步是设置资源代码和目标兼容性所支持的java版本,选择下拉菜单中若没有java8版本,就暂时选择最高版本1.7,具体请看图)


image.png


image.png


(第七步是找到项目对应的build.gradle文件,在图中中间的红框位置,手动设置两项--资源代码和目标兼容性,所支持的java版本,更改为Java8版本,具体修改代码如下。最后再同步一下项目就ok了)


compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }


位置如图:

image.png


到此时还没结束,同步代码后有可能出现bug:

image.png

需要在build.gradle文件中加如下代码,然后同步,ok。

defaultConfig {
      ...
      jackOptions {
        enabled true
      }
    }


(注:上面只是手动设置支持java8的方式,便于理解。若觉得麻烦,请别着急,继续往下看哦!)


3.快捷设置项目支持使用java8的方式:


前提:计算机中已安装java8 JDK软件并配置好了相关的环境变量。


在项目的build.gradle文件中加如下代码,并同步即可。(注:这里才是本文最核心的部分)

android {  
  ...  
  compileOptions {  
    sourceCompatibility JavaVersion.VERSION_1_8  
    targetCompatibility JavaVersion.VERSION_1_8  
  }  
  defaultConfig {  
    ...  
    jackOptions {  
      enabled true  
    }  
  }  
  ...  
}  

4.如何在项目中使用Lambda表达式


先试试代码效果:


是将原有代码转换成lambda表达式形式

image.png

转换后:

image.png

4.快捷设置支持使用Lambda表达式


上面的方式比较繁琐,是为了让大家清楚如何设置支持使用java8 新特性。


如果只是为了设置支持使用Lambda表达式,那非常简单,如图:


首先先在项目中写一段Lambda表达式,肯定会报错,然后将鼠标放在报错的位置,按快捷键Alt+Enter,会出现提示,然后按图中的显示的位置点击对应操作就Ok了。

image.png

(注:再偷偷教你一招,如果在项目中有看不懂Lambda表达式的表现形式,可以将鼠标放在Lambda表达式位置,然后按快捷键Alt+Enter,会出现如上面图的提示,然后选择倒数第二个的那串英文,将Lambda表达式换回原来的匿名类形式。)

目录
相关文章
|
2天前
|
人工智能 JavaScript 安全
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
38 13
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
|
19天前
|
Java Linux iOS开发
如何配置 Java 环境变量:设置 JAVA_HOME 和 PATH
本文详细介绍如何在Windows和Linux/macOS系统上配置Java环境变量。
475 12
|
16天前
|
前端开发 Java 程序员
菜鸟之路day02-04拼图小游戏开发一一JAVA基础综合项目
本项目基于黑马程序员教程,涵盖面向对象进阶、继承、多态等知识,历时约24小时完成。项目去除了登录和注册模块,专注于单机游戏体验。使用Git进行版本管理,代码托管于Gitee。项目包含窗体搭建、事件监听、图片加载与打乱、交互逻辑实现、菜单功能及美化界面等内容。通过此项目,巩固了Java基础并提升了实际开发能力。 仓库地址:[https://gitee.com/zhang-tenglan/puzzlegame.git](https://gitee.com/zhang-tenglan/puzzlegame.git)
35 6
|
2月前
|
Java Maven
java项目中jar启动执行日志报错:no main manifest attribute, in /www/wwwroot/snow-server/z-server.jar-jar打包的大小明显小于正常大小如何解决
在Java项目中,启动jar包时遇到“no main manifest attribute”错误,且打包大小明显偏小。常见原因包括:1) Maven配置中跳过主程序打包;2) 缺少Manifest文件或Main-Class属性。解决方案如下:
521 8
java项目中jar启动执行日志报错:no main manifest attribute, in /www/wwwroot/snow-server/z-server.jar-jar打包的大小明显小于正常大小如何解决
|
19天前
|
算法 搜索推荐 Java
【潜意识Java】深度解析黑马项目《苍穹外卖》与蓝桥杯算法的结合问题
本文探讨了如何将算法学习与实际项目相结合,以提升编程竞赛中的解题能力。通过《苍穹外卖》项目,介绍了订单配送路径规划(基于动态规划解决旅行商问题)和商品推荐系统(基于贪心算法)。这些实例不仅展示了算法在实际业务中的应用,还帮助读者更好地准备蓝桥杯等编程竞赛。结合具体代码实现和解析,文章详细说明了如何运用算法优化项目功能,提高解决问题的能力。
54 6
|
19天前
|
Java 数据库连接 数据库
【潜意识Java】深度分析黑马项目《苍穹外卖》在Java学习中的重要性
《苍穹外卖》项目对Java学习至关重要。它涵盖了用户管理、商品查询、订单处理等模块,涉及Spring Boot、MyBatis、Redis等技术栈。
51 4
|
1月前
|
存储 Java BI
java怎么统计每个项目下的每个类别的数据
通过本文,我们详细介绍了如何在Java中统计每个项目下的每个类别的数据,包括数据模型设计、数据存储和统计方法。通过定义 `Category`和 `Project`类,并使用 `ProjectManager`类进行管理,可以轻松实现项目和类别的数据统计。希望本文能够帮助您理解和实现类似的统计需求。
83 17
|
2月前
|
NoSQL Java 关系型数据库
Liunx部署java项目Tomcat、Redis、Mysql教程
本文详细介绍了如何在 Linux 服务器上安装和配置 Tomcat、MySQL 和 Redis,并部署 Java 项目。通过这些步骤,您可以搭建一个高效稳定的 Java 应用运行环境。希望本文能为您在实际操作中提供有价值的参考。
166 26
|
2月前
|
存储 Java 开发者
什么是java的Compact Strings特性,什么情况下使用
Java 9引入了紧凑字符串特性,优化了字符串的内存使用。它通过将字符串从UTF-16字符数组改为字节数组存储,根据内容选择更节省内存的编码方式,通常能节省10%至15%的内存。
|
2月前
|
存储 Java 数据挖掘
Java 8 新特性之 Stream API:函数式编程风格的数据处理范式
Java 8 引入的 Stream API 提供了一种新的数据处理方式,支持函数式编程风格,能够高效、简洁地处理集合数据,实现过滤、映射、聚合等操作。
90 6