实际工程中加快 Java 代码编写的小提示
这里我简单谈谈 Java 语法在编程效率方面的弱势,以及如何补救。
一、集合的快速创建
C# 是少数拥有集合字面值(又叫初始化表达式)的静态语言之一。
var list = new List<int> {1, 2, 3};
var set = new HashSet<int> {1, 2, 3};
var map = new Dictionary<int, int> {{1, 2}, {2, 3}, {3, 4}};
在 Java 中如果想要达到相同效果,可以用List/Set/Map.of()工厂方法。如果是 Java 9 以下的版本,可以用 Guava 中的ImmuatableList/Set/Map.of():
List<Integer> list = ImmutableList.of(1, 2, 3);
Set<Integer> set = ImmutableSet.of(1, 2, 3);
Map<Integer, Integer> map = ImmutableMap.of(1, 2, 2, 3, 3, 4);
要注意它们是不可变的。如果要创建可变集合,可以将其再赋给集合构造器:
List<Integer> list = new ArrayList<>(ImmutableList.of(1, 2, 3));
读写器的快速创建
C# 拥有自动属性,可以自动创建默认行为的属性,和背后的字段:
public class User
{
public int Id {get; set;}
public string Username {get; set;}
public string Password {get; set;}
public string Phone {get; set;}
}
Java 特性不支持这样,但可以使用 Lombok 插件的@Data注解,来快速创建一个这样的数据类(类似 Kotlin 的 DataClass 特性):
@Data
public class User
{
private int id;
private String username;
private String password;
private String phone;
}
然后你就可以使用它们的读写器了:
User u = new User();
u.setId(1);
u.setUsername("wizard");
u.setPassword("xxxxxx");
u.setPhone("13xxxxxxxxx");
三、对象的快速创建
C# 再次支持对象字面值,它在背后调用相应构造器和属性:
var u = new User() {
Id=1,
Username="wizard",
Password="xxxxxx",
Phone="13xxxxxxxxx"
};
Java 这边,可以使用 Lombok 的@Builder注解:
@Data
@Builder
public class User
{
//...
}
然后:
User u = User.builder()
.id(1)
.username("wizard")
.password("xxxxxx")
.phone("13xxxxxxxxx")
.build()
更多
未完待续...
实际工程中加快 Java 代码编写的小提示的更多相关文章
- JSP中的Java代码和内置对象
一.JSP中的Java代码 (一)JSP页面中有三种方式嵌入java代码: 1.java的表达式 格式:<%= java表达式 %> 2.java的语句 格式:<% java语句&g ...
- Jmeter4.0---- jmeter中写入java代码_简单了解(15)
1.说明 BeanShell:是一个小型嵌入式Java源代码解释器,具有对象脚本语言特性,能够动态地执行标准JAVA语法,并利用在JavaScript和Perl中常见的的松散类型.命令.闭包等通用脚本 ...
- Myeclipse中把java代码导成UML类图
Myeclipse中把java代码导成UML类图 1.右键点击项目名称,选择New-------àUML2 Model 2.给类图命名 3.导成类图 1)如果要把整个项目导成类图,则把整个项目拖到类图 ...
- jsp页面中的java代码
jsp页面中的java代码 1.jsp表达式 <%= ....%> 只能放置一个变量常量 2. jsp小脚本 <% .... %> java语句,可以插入一些语句 3. ...
- JSP中嵌入java代码方式以及指令
JSP中嵌入java代码的三种方式: (1)声明变量或方法 : <%! 声明; %> :慎重使用,因为此方法定义的是全局变量 (2)java片段(scriptlet): <% j ...
- android中在java代码中设置Button按钮的背景颜色
android中在java代码中设置Button按钮的背景颜色 1.设置背景图片,图片来源于drawable: flightInfoPanel.setBackgroundDrawable(getRes ...
- MyEclipse中阿里JAVA代码规范插件(P3C)的安装及使用
JAVA代码规范插件(P3C)是阿里巴巴2017年10月14日在杭州云栖大会上首发的,使之前的阿里巴巴JAVA开发手册正式以插件形式公开走向业界.插件的相关信息及安装包都可以在GitHub(https ...
- eclipse中添加Java代码注释模板
eclipse中添加Java代码注释模板 1.Window->Preference->Java->Code Style->Code Template,进入注释编辑界面 2.文件 ...
- EL和 JSTL? 在JSP中简化 java代码的写法!
一.servlet部分 package com.aaa.servlet; import com.aaa.dao.IStudentDAO; import com.aaa.dao.Impl.Student ...
随机推荐
- 台湾旺玖MA8601|USB HUB方案|MA8601测试版
MA8601是USB 2.0高速4端口集线器控制器的高性能解决方案,完全符合通用串行总线规范2.0.MA8601继承了先进的串行接口技术,当4个DS(下游)端口同时工作时,功耗最低. MA8601采用 ...
- JSP、JSTL标签、EL表达式
JSP.JSTL标签.EL表达式 1.EL表达式:${} 功能: 获取数据 执行运算 获取web开发的常用对象 2.JSP标签 例如: jsp标签还有很多功能,这里只列举出一种. <jsp:fo ...
- 编写Java程序_定义两个方法,实现奇数偶数的判断,并计算和(有参数有返回值方法)
需求说明: 定义两个方法,在控制台输入一个数字,这两个方法可以求出1到该数字之间所有偶数之和.奇数之和,并将对应结果和返回.在main方法中调用该方法,并在控制台打印出结果.(有参数有返回值方法) 运 ...
- Eclipse 常用快捷键大全
15 个 Eclipse 常用开发快捷键使用技巧 1.alt+? 或 alt+/:自动补全代码或者提示代码 2.ctrl+o:快速outline视图 3.ctrl+shift+r:打开资源列表 4.c ...
- Java集合与数组的联系和区别
数组特点 存放一组相同的数据类型(基本类型和对象类型)的数据,从而实现对数据的管理. 优势:可以快速的通过下标对数组元素进行访问,效率高 劣势:容量实现定义好了,不能随着需求变化而扩容. 集合特点 集 ...
- python3实现阿里云发短信
一.准备工作 1.安装阿里云SDK pip install aliyun-python-sdk-core-v3 2.新建签名并等待审核通过 审核通过后,记下**[签名名称](参数1)**,程序中会用到 ...
- shell中的2>/dev/null
1.文件描述符Linux系统预留可三个文件描述符:0.1和2,他们的意义如下所示:0--标准输入(stdin)1--标准输出(stdout)2--标准错误(stderr) 标准输出--stdout假设 ...
- docker安装easymock
一.准备 参考docker安装mongodb与redis文章 二.拉取 docker pull docker.io/easymock/easymock 三.启动 1.创建配置目录 mkdir -f / ...
- vue-json-editor可视化编辑器的介绍与应用
vue-json-editor可视化编辑器 最近项目中有用到json编辑器,我选用了这款vue的编辑器,看起来也是比较简洁,接下来就具体介绍一下它,以及内部属性. 一.vue-json-editor的 ...
- 彻彻底底地理解TCP三次握手和四次挥手的全部过程
三次握手 我们先提出一些问题,但是我们暂且不回答这些问题,下面我会尽我所能详尽地讲解TCP的三次握手过程,然后看完你可以在评论区留下你对问题的答案,我们可以一起探讨. 为什么要握手 为什么是三次而不是 ...