Java常用开发工具

IDE

推荐Intelij IDEA,有社区版本的,可以免费使用。同时还与很多语法和编译器的支持,比如Markdown、VM、Bash、Thrift、Protobuf。

lombok

reference:
https://projectlombok.org/index.html

开发环境

  • 插件安装
    集成开发环境中,需要安装对应的开发插件, 插件安装参照对应的集成开发环境中插件的安装方法,搜索lombok,安装。
  • maven库
//如果使用了@Log相关的注解,需要添加对应的库
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.12</version>
</dependency>
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.16.4</version>
</dependency>
  • 启用注解处理

注解说明

val
      Finally! Hassle-free final local variables.
      会自动解析变量的返回类型,并且返回的变量列行是final类型。final String foo = example.get(0); var foo = example.get(0);

@NonNull
      How I learned to stop worrying and love the NullPointerException.
      常用于函数参数的设置,相比Java自带的注解,不需要写任何的check代码。

 public NonNullExample(@NonNull Person person) {
     this.name = person.getName();
}

//相当于
public NonNullExample(@NonNull Person person) {
    if (person == null) {
       throw new NullPointerException("person");
    }
    this.name = person.getName();
}

@Cleanup
      Automatic resource management: Call your close() methods safely with no hassle.

@Cleanup InputStream in = new FileInputStream(args[0]);
//当in变量超出作用域后,会调用对应的close方法。如果没有close方法,也可以指定对应的处理方法, @Cleanup("method name")

@Getter / @Setter
      Never write public int getFoo() {return foo;} again.

@ToString
      No need to start a debugger to see your fields: Just let lombok generate a toString for you!

@ToString(callSuper=true, includeFieldNames=true)

@EqualsAndHashCode
      Equality made easy: Generates hashCode and equals implementations from the fields of your object.

@EqualsAndHashCode
@EqualsAndHashCode(exclude={"id", "shape"}) //不对id,shape属性进行比较

@NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor
      Constructors made to order: Generates constructors that take no arguments, one argument per final / non-null field, or one argument for every field.

@Data
      All together now: A shortcut for @ToString, @EqualsAndHashCode, @Getter on all fields, and @Setter on all non-final fields, and @RequiredArgsConstructor!

@Value
      Immutable classes made very easy.

@Builder
      The @Builder annotation produces complex builder APIs for your classes. 可以在程序中使用 Person.builder().name(“Adam Savage”).build();这样的类似的方法来构建对应的实体。

 @Builder
 public class BuilderExample {
   private String name;
   private int age;
   @Singular private Set<String> occupations;
 }

集合类型中需要@Singular注解,lombok中支持的类型包括:

java.util:
    Iterable, Collection, and List (backed by a compacted unmodifiable ArrayList in the general case).
    Set, SortedSet, and NavigableSet (backed by a smartly sized unmodifiable HashSet or TreeSet in the general case).
    Map, SortedMap, and NavigableMap (backed by a smartly sized unmodifiable HashMap or TreeMap in the general case).

Guava's com.google.common.collect:
    ImmutableCollection and ImmutableList (backed by the builder feature of ImmutableList).
    ImmutableSet and ImmutableSortedSet (backed by the builder feature of those types).
    ImmutableMap, ImmutableBiMap, and ImmutableSortedMap (backed by the builder feature of those types).

@SneakyThrows
To boldly throw checked exceptions where no one has thrown them before!

@Synchronized

@Getter(lazy=true)
      Laziness is a virtue!使用了getter这个annotation可以在实际使用到cached的时候生成cached,同时,Lombok会自动去管理线程安全的问题,不会存在重复赋值的问题。

@Getter(lazy=true) private final double[] cached = expensive();

 private double[] expensive() {
     double[] result = new double[1000000];
     for (int i = 0; i < result.length; i++) {
       result[i] = Math.asin(i);
    }
     return result;
 }

@Log
Captain’s Log, stardate 24435.7: “What was that line again?”

Configuration system
Lombok, made to order: Configure lombok features in one place for your entire project or even your workspace.

J2SE中注解

时间: 2025-01-04 09:56:43

Java常用开发工具的相关文章

java初学者常用开发工具介绍

初学 Java的应用越来越广泛,学习Java的人也越来越多.学过程序设计的人知道,使用Basic进行程序设计,可以使用QBasic.Visual Basic等开发工具:使用C语言进行程序设计,可以使用Turbo C.Visual C++.C++ Builder等开发工具.这些开发工具集成了编辑器和编译器,是集成开发工具,很方便使用.学习Java程序设计,同样需要方便易用的开发工具.Java的开发工具很多,而且各有优缺点,初学者往往不知道有哪些常用的开发工具,或者由于面临的选择比较多而产生困惑.本

JAVA之旅(一)——基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算

JAVA之旅(一)--基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算 Android老鸟重新学一遍JAVA是什么感觉?枯燥啊,乏味啊,而且归纳写博客,都是很痛苦的事情,但是程序之路这么长,你必须精通的不能再精通一门语言才行(有点说大了哈),但是最起码你要如鱼得水吧,我准备的资料有: JAVA编程思想 深入浅出JAVA 黑马,传智,慕课,极客学院等-的视频 Google搜索 我们既然是重新学一遍,那我们尽量就是用记事本去敲代码好了,这里我用notep

SharePoint 2013常用开发工具分享

原文:SharePoint 2013常用开发工具分享 众所周知,一款好的开发工具不仅能提高项目开发效率,而且能够协助开发人员简化开发流程.本文汇总几款SharePoint 2013开发常用开发工具,希望能够对大家有所帮助.如果您有更好的工具,没有包含在本文中,欢迎留言分享. Visual Studio 2013 (http://www.visualstudio.com/) 排在第一位的开发工具自然是Visual Studio,不过我个人而言,更推荐Visual Studio 2013. VS20

WaveMaker 6.3.3发布 Java应用开发工具

WaveMaker是一个用于Web和云应用程序的Java应用开发工具.工作原理是通过导入一个数据库的模型,自动根据该模型生成 Hibernate 映射和 CRUD 操作的 HQL 查询定义.它的可视化.拖动和拖放工具让Java学习过程提高92%,从而使http://www.aliyun.com/zixun/aggregation/7155.html">开发人员轻松地构建企业Web应用程序部署到一个标准的Java平台,提高工作效率和质量.云应用程序支持多用户和弹性扩展. WaveMaker

求Java快速开发工具,类似EasyJWeb的

问题描述 EasyJWeb的UI界面不太美观,寻求与之类似的Java快速开发工具 解决方案 解决方案二:我之前问过的http://bbs.csdn.net/topics/380153603解决方案三:伞克呦是那种类似EasyJWeb的那样开发框架,不是Eclipse的那种开发工具

有关在哪儿可以下载java报表开发工具iReport和JsperReport

问题描述 有关在哪儿可以下载java报表开发工具iReport和JsperReport希望大家说哈!谢谢! 解决方案 解决方案二:http://jasperforge.org/

PHP初学者:常用开发工具分析

初学     因为PHP是一种开放性的语言,这也导致了开发环境没有强而权威的支持.这里列举一些比较好的编辑工具,希望能给大家开发PHP程序提供一些帮助. Dreamweaver 从MX开始,DW开始支持PHP+MYSQL的可视化开发,对于初学者确实是比较好的选择,因为如果是一般性开发,几乎是可以不写一行代码也可以写出一个程序,而且都是所见即所得的. 所包含的特征包括,语法加亮.函数补全,形参提示等. 不过DW生成的代码比较复杂,安全性也一般.在手写的方面,方便度一般,在调试环境方面表现差强人意.

初学者必读 PHP常用开发工具分析

初学     因为PHP是一种开放性的语言,这也导致了开发环境没有强而权威的支持.这里列举一些比较好的编辑工具,希望能给大家开发PHP程序提供一些帮助.     Dreamweaver    从MX开始,DW开始支持PHP+MYSQL的可视化开发,对于初学者确实是比较好的选择,因为如果是一般性开发,几乎是可以不写一行代码也可以写出一个程序,而且都是所见即所得的.     所包含的特征包括,语法加亮.函数补全,形参提示等.     不过DW生成的代码比较复杂,安全性也一般.在手写的方面,方便度一般

PHP常用开发工具分析

因为PHP是一种开放性的语言,这也导致了开发环境没有强而权威的支持.这里列举一些比较好的编辑 工具,希望能给大家开发PHP程序提供一些帮助. Dreamweaver 从MX开始,DW开始支持PHP+MYSQL的可视化开发,对于初学者确实是比较好的选择,因为如果是一般性 开发,几乎是可以不写一行代码也可以写出一个程序,而且都是所见即所得的. 所包含的特征包括,语法加亮.函数补全,形参提示等. 不过DW生成的代码比较复杂,安全性也一般.在手写的方面,方便度一般,在调试环境方面表现差强 人意.不太适合