包含javaparserlombok的词条

http://www.itjxue.com  2023-01-28 08:32  来源:未知  点击次数: 

java lombok 怎么赋值

Java创建对象并赋值,示例如下

Interger i = new Interger(1);

String s = “已经被创建了";

创建对象可以指定构造函数里面的初始化变量,也可以像string对象一样,直接用双引号生成对象,并且是不可以改变的。

你常用的Java工具库都有哪些

Java?SDK?肯定是使用最广的库,所以本文的名单焦点是流行的第三方库。该列表可能并不完善,所以如果你觉得有什么应该出现在列表中的,请留下您的评论。非常感谢!

1、核心库

Apache Commons Lang:来自Apache的核心库,为java.lang API补充了许多常用的工具类,如字符串操作、对象的创建等。

Google Guava:来自谷歌的核心库,包括集合(Collection)、缓存(Caching)、支持原语(Primitives)等。(示例)

2、HTML、XML Parser

Jsoup:一个简化了的 HTML操作的库。(示例)

STaX:一组可以高效处理?XML的API。 (示例)

3、Web框架

Spring:Java平台上众所周知的开源框架和依赖注入容器。(示例)

Struts2:来自Apache的流行Web框架。 (示例)

Google?Web?Toolkit:Google提供的开发工具库,主要用于构建和优化复杂的Web程序用。 (示例)

Strips:使用最新Java技术构建的Web程序框架,推荐使用。

Tapestry:面向组件的框架,用于使用Java创建动态、健壮、扩展性高的Web应用程序。

请猛击这里?查看以上面框架之间的比较。

4、图表、报表、图像

JFreeChart:用于创建如条形图、折线图、饼图等图表。

JFreeReport:创建于输出PDF格式的报表。

JGraphT:创建图像,其中只包含由线段连接的点集。

5、窗口

Swing:SDK提供的GUI库。(示例)

SWT:eclipse提供的GUI库。

SWT与Swing的比较。

6.、GUI框架

Eclipse?RCP。(示例)

7、自然语言处理

OpenNLP:来自Apache的自然语言处理库。 (示例)

Stanford?Parser:斯坦福大学提供的自然语言处理库。(示例)

如果你是一名NLP专家,请猛击这里?查看更多工具库介绍。

8、静态分析

Eclipse?JDT:由IBM提供的静态分析库,可以操作Java源代码。(示例)

WALA:可以处理jar包文件(即字节码)的工具库。(示例)

9、JSON

Jackson: 用于处理JSON数据格式的多用途的Java库。Jackson 旨在快速、准确、轻量、对开人员友好之间找到最好的平衡点。

XStream:一个简单用于对象和XML互相转换的库。

Google?Gson:一个专门用于Java对象和Json对象相互转换的工具库。(示例)

JSON-lib:用于?beans、maps、collections、java?arrays、XML?和?JSON?之间相互转换操作的工具库。

10、数学

Apache?Commons?Math:提供数学计算和数值统计需函数的工具库。

11、日志

Apache?Log4j:风行一时的日志记录操作库。?(示例)

Logback:当前流行的log4j项目的继任者。

SLF4J(The?Simple?Logging?Facade?for?Java): 各种日志框架的一个简单的外观或抽象(如java.util.logging 、logback、log4j等),允许用户在部署时加入需要的日志框架。

12、Office

Apache?POI:利用其提供的APIs,可以使用纯Java代码操作各种基于微软OLE2合成文档格式的文档。

Docx4j:一个用于创建、操作微软公开的XML文件的库(支持Word?docx、 Powerpoint?pptx和Excel?xlsx)。

13、日期和时间

Joda-Time:如有质量问题包退包换的Java日期和时间类。

14、数据库

Hibernate、EclipseLink、JPA

JDO

jOOQ

SpringJDBC、Spring?Data

Apache?DbUtils

15、开发工具

Lambok: 旨在减少代码编写的Java开发库。

超级全面的 Lombok 注解介绍,学一波

使用 @Getter 和/或 @Setter 注释任何字段,以使 lombok 自动生成默认的 getter / setter 。

默认的 getter 只是返回该字段,如果该字段被称为 foo ,则名为 getFoo (如果该字段的类型为 boolean ,则为 isFoo )。

默认生成的 getter / setter 方法是公共的,除非你明确指定一个 AccessLevel 。合法访问级别为 PUBLIC,PROTECTED,PACKAGE和PRIVATE 。

你还可以在类上添加 @Getter 和/或 @Setter 注释。在这种情况下,就好像你使用该注释来注释该类中的所有非静态字段一样。

你始终可以使用特殊的 AccessLevel.NONE 访问级别来手动禁用任何字段的 getter / setter 生成。这使你可以覆盖类上的 @Getter,@Setter或@Data 注释的行为。

With Lombok:

Native Java:

任何类定义都可以使用 @ToString 注释,以使 lombok 生成 toString() 方法的实现。

默认情况下,将打印所有非静态字段。如果要跳过某些字段,可以使用 @ ToString.Exclude 注释这些字段。或者,可以通过使用 @ToString(onlyExplicitlyIncluded = true) ,然后使用 @ToString.Include 标记要包含的每个字段,来确切指定希望使用的字段。

通过将 callSuper 设置为 true ,可以将 toString 的超类实现的输出包含到输出中。请注意, java.lang.Object中toString() 的默认实现几乎毫无意义。

With Lombok:

Native Java:

任何类定义都可以使用 @EqualsAndHashCode 进行注释,以使 lombok 生成 equals(Object other) 和 hashCode() 方法的实现。默认情况下,它将使用所有非静态,非瞬态字段,但是您可以通过使用 @EqualsAndHashCode.Include 标记类型成员来修改使用哪些字段(甚至指定要使用各种方法的输出)。 @EqualsAndHashCode.Exclude 。或者,可以通过使用@ EqualsAndHashCode.Include 标记并使用 @EqualsAndHashCode(onlyExplicitlyIncluded = true) 来精确指定要使用的字段或方法。

如果将 @EqualsAndHashCode 应用于扩展另一个类的类,则此功能会有些棘手。通常,为此类自动生成 equals 和 hashCode 方法是一个坏主意,因为超类还定义了字段,该字段也需要 equals / hashCode 代码,但不会生成此代码。通过将 callSuper 设置为 true ,可以在生成的方法中包括超类的 equals 和 hashCode 方法。

搜索Java知音公众号,回复“后端面试”,送你一份Java面试题宝典.pdf

With Lombok:

Native Java:

@NoArgsConstructor 将生成没有参数的构造函数。如果字段由final修饰,则将导致编译器错误,除非使用 @NoArgsConstructor(force = true) ,否则所有final字段都将初始化为 0 / false / null 。对于具有约束的字段(例如 @NonNull 字段),不会生成任何检查。

@AllArgsConstructor 为类中的每个字段生成一个带有1个参数的构造函数。标有 @NonNull 的字段将对这些参数进行空检查。

搜索Java知音公众号,回复“后端面试”,送你一份Java面试题宝典.pdf

With Lombok:

Native Java:

@Data 是一个方便的快捷方式批注,它将 @ToString , @EqualsAndHashCode , @ Getter / @Setter 和 @RequiredArgsConstructor 的功能捆绑在一起:换句话说, @Data 生成通常与简单 POJO 关联的所有样板(普通的旧 Java 对象)和 bean :所有字段的 getter ,所有 非final 字段的 setter ,以及涉及类字段的适当的 toString , equals 和 hashCode 实现,以及初始化所有 final 字段以及所有 非final 字段的构造函数没有使用 @NonNull 标记的初始化程序,以确保该字段永远不会为 null 。

With Lombok:

Native Java:

@Value注解和 @Data 类似,区别在于它会把所有成员变量默认定义为 private final 修饰,并且不会生成 set 方法。

构建者模式

只能标注到类上,将生成类的一个当前流程的一种链式构造工厂,如下:

可配合 @Singular 注解使用, @Singular 注解使用在jdk内部集合类型的属性, Map 类型的属性以及 Guava 的 com.google.common.collect 的属性上。例如 未标注 @Singular 的属性,一般 setter 时,会直接覆盖原来的引用,标注了 @Singular 的属性,集合属性支持添加操作,会在属性原来的基础上增加。

With Lombok:

Native Java:

链式风格

@Accessors 批注用于配置 lombok 如何生成和查找 getter 和 setter 。

默认情况下, lombok 遵循针对 getter 和 setter 的 bean 规范:例如,名为 Pepper 的字段的 getter 是 getPepper 。但是,有些人可能希望打破 bean 规范,以得到更好看的 API 。 @Accessors 允许您执行此操作。

可标注在类或属性上,当然最实用的功能还是标注到类上。

标注到类上, chain 属性设置为 true 时,类的所有属性的 setter 方法返回值将为 this ,用来支持 setter 方法的链式写法。如:

fluent 属性设置为 true 时,类的所有 getter , setter 方法将省略 get 和 set 前缀,获取属性值直接使用属性名相同的无参方法,设置属性值使用属性名相同的有参方法,并且返回值为this。如:

标注到属性上,使用 prefix 设置需要省略的属性生成 getter , setter 方法时的前缀,且属性必须为驼峰式命名。

编译之后为

在需要打印日志的类中使用,项目中使用 slf4j 、 log4j 日志框架

该注解快速判断是否为空,为空抛出 java.lang.NullPointerException 。

注解自动添加到同步机制,生成的代码并不是直接锁方法,而是锁代码块, 作用范围是方法上。

注解用于确保已分配的资源被释放( IO 的连接关闭)。

(责任编辑:IT教学网)

更多

推荐JSP教程文章