Netbeans源代码编辑技巧——使用代码补全和代码生成

时间:2022-09-12 22:35:05

原文 Netbeans源代码编辑技巧——使用代码补全和代码生成

使用代码补全生成代码

一般来说,代码补全对于自动填充缺失的代码是有帮助的,例如标识符和关键字。截至 NetBeans IDE 6.0,您现在甚至可以用代码补全来生成整个方法。例如,您想生成一个构造器,覆盖方法,或者实现方法,代码补全是很有用的。稍后,我们也将来看看 NetBeans 6.0 代码补全的其它一些有趣的特性,例如使用代码生成对话框生成任意的构造器。

首先我们来看看一个表示电子邮件的 JavaBean 的编写。包含了用来存储数据的私有字段的 bean 框架已经为我们准备好了,我们现在要为它创建一个合理的构造器,如以下过程和演示所示。

使用代码补全来生成一个构造器:

  1. 把光标放置在文件中您想要生成构造器的地方,然后按 Ctrl+Space 键。
  2. 在出现的代码补全窗口中,选择将初始化它的字段的构造器 (例如,Mail(String subject, String body) - 生成)。注意,IDE 给你提供生成默认构造器或者将初始化所有字段的构造器的选项。
  3. 按回车键。 

    IDE 在指定的位置实现您选择的构造器。注意,IDE 同时也可能提供超类方法的覆盖选项或者父接口方法的实现选项。

用代码生成对话框生成代码

IDE 的 Java 编辑器对于生成构造器是很强大的,通常您会自然而然地使用它。在这一节,我们将来看看这个过程。

下一步我们要做的是为字段生成 Getter 和 Setter 方法,并确定我们能将该类用在需要有 equals() 和hashCode() 方法的集合中。通常 IDE 的 Java 编辑器能够自动地生成这种结构。注意,与我们学习的范例过程一样,IDE 的代码生成对话框同样允许您做更多的事,包括创建委托方法,生成初始化任意字段集的构造器,等等。

生成 getter 和 setter 方法:

  1. 按下 Alt+Insert 键呼出代码生成菜单。
  2. 从显示的列表选项中选择您要生成的功能(例如,Getter 和 Setter...)。
  3. 在弹出的对话框中,选择您想要生成 getter 和 setter 方法的字段,点击“确定”按钮。 

    IDE 自动生成 getter 和 setter 方法。

下一步我们要做的是通过 Alt-Insert 键生成一个 Equals 和 Hashcode 方法。

生成 equals 和 hashcode 方法:

  1. 按下 Alt+Insert 键呼出代码生成菜单:
  2. 在弹出的菜单中选择您要生成的项(例如,equals() 和 hashCode()... )。
  3. 在弹出的对话框中,选择您要生成 equals 和 hashCode 方法的字段并点击“确定”按钮。 

    IDE 生成所需的 equals 和 hashcode 方法。

管理 Import 语句

当您点击小灯泡错误标记或者按下适当的组合键时,IDE 的 Java 编辑器提供了几种方法来为一个或多个类添加 import 语句,每种方法都提供了一个可用于导入的类的列表。另外,编辑器也提供了错误提示来帮助您删除源程序中未使用导入语句。

在我们前一节的文件中做了必要的修改后,您会注意到 IDE 在编辑窗的左边显示了一个警告,提示您在我们的文件中存在一个未使用的导入。要修复它,我们可以使用 IDE 中新增的强大的删除未使用的导入命令,我们可以看到它是如何工作的。

删除未使用的导入:

  1. 把光标放在未导入的类所在的行并按下 Alt+Enter 键。您可以在批注条(沿着编辑器的左边缘)上点击警告标志。
  2. 在弹出菜单中选择“删除未使用的导入”。注意,您可以选择从导入段中删除一个或者所有未使用的导入。

    IDE 从文件中删除未使用的导入语句。

IDE 的 Java 编辑器同时提供了管理导入语句的其它几种方法,例如按下 Ctrl+I 键一次性导入多个类型,当光标被放在一个类型上时按下 Alt+I 键可以导入那个具体的类型。

使用编辑器行工具

在此,我们将为用户名和密码创建两个字符型的私有静态字段。使用编辑器的行编辑工具特性,我们快速地复制光标所在的行,并立即复制/粘贴或移动到第一行之下。当要快速地复制或移动拥有大部分相同代码并只有一小部分需要调整的代码行时,例如在初始化一个数组的情况下,这个特性特别有用。这样操作之后,您可以根据需要编辑字段的值。

复制当前行或者多个选定的行:

  1. 将光标放在您要复制的行上或者选择您要复制的多个行。
  2. 按住 Ctrl-Shift 键,然后按“向上”或“向下”键将指定的代码行复制并粘贴到原始行的上方或下方。 

    IDE 将当前行或者多个选定的行复制到了目标位置。

移动当前行或者多个选定的行:

    1. 将光标放在您要移动的行上或者选择您要移动的多个行。
    2. 按住 Alt-Shift 键,然后按“向上”或“向下”键将指定的代码行移动到原始行的上方或下方。 

      IDE 将当前行或者多个选定的行移动到了目标位置。

Netbeans源代码编辑技巧——使用代码补全和代码生成的更多相关文章

  1. Notepad++强大的代码补全和代码提示功能的方法

    最近写项目,经常要打开一些文件去修改一些代码段.那么我的项目都是使用ied大型编辑器去写的,每次修改文件,哪怕是一个标点都要用一分钟时间去打开软件.当然,后来我也考虑到使用记事本,但总感觉不是很爽. ...

  2. [jetbrains系列] 外链第三方库+代码补全设置

    jetbrains系列的IDE真的是太好用了,有种相见恨晚的感觉. 在开发过程中第三方库是必不可少的,在开发的时候如果有一个可以补全的IDE可以节省查文档的时间. 举个例子:给pycharm配pysp ...

  3. vim代码补全-spf13,YouCompleteMe

    vim代码补全 现在的图形界面的IDE(Integrated Development Environment)一般具有语法高亮,语法检查,自动补全功能,大大提高了编程的效率. vim作为文本编辑器其强 ...

  4. Learning Lua Programming (3) iMac下搭建Lua脚本最好的编码环境(代码补全,编译运行)

    这篇文章参考自http://blog.sina.com.cn/s/blog_991afe570101rdgf.html,十分感谢原作者的伟大创造,本人亲测可行. 这篇文章记录一下如何在MAC系统环境下 ...

  5. 在 VsCode 中自定义代码补全

    前言 之前公司的 Vscode 折腾成功过,如今给自己家装一个忘记怎么定义了,故回忆一下写个博文记录 代码补全顾名思义就是输入一两个字母自动提示相关的联想操作,由于VsCode非常精简所以很多联想没有 ...

  6. jupyter notebook安装/代码补全/支持golang 踩坑记

    安装(不要用root) 安装anaconda3,然后ln -s bin目录下的jupyter命令到/usr/bin目录下 生成密码备用 敲ipython进入交互终端 In [1]: from note ...

  7. vue(element)中使用codemirror实现代码高亮,代码补全,版本差异对比

    vue(element)中使用codemirror实现代码高亮,代码补全,版本差异对比 使用的是vue语言,用element的组件,要做一个在线编辑代码,要求输入代码内容,可以进行高亮展示,可以切换各 ...

  8. vim--golang代码补全

    我想说,我折腾了很久编辑器,试了九种办法 最后我只成功了一种 但我依然想就我混乱的逻辑做下整理 一.一开始,我试图入手ipad编码软件,大概9美金吧,叫Textastic.我试图用它的近亲来试验Tex ...

  9. ADT中的代码补全设置

    设置自动补全代码 刚刚学Android,有很多变量和方法 都不熟悉.需要有提示,才更加方便. 快捷方式:Alt + /    可以出现代码提示. 默认的只有输入“ .” 以后才会有代码补全提示,可作如 ...

随机推荐

  1. iOS基础框架的搭建/国际化操作

    1.基础框架的搭建 1.1 pod引入常用的第三方类库 1.2 创建基础文件夹结构/目录结构 Resource———存放声音/图片/xib/storyboard 等资源文件 Define——宏定义, ...

  2. 认识ionic2

    1. Ionic 2 介绍 Ionic 2专注于以标准的HTML.CSS和JavaScript来构建移动站点,并可以通过Cordova打包成移动 App,只需编写一次代码,就可以分别部署到iOS.An ...

  3. python简单实现websocket

    协议选择的是新的Hybi-10,参考文章如下: http://www.cnblogs.com/zhuweisky/p/3930780.html http://blog.mycolorway.com/2 ...

  4. Docker搭建MongoDB

    1. Docker搭建Mongodb 1.1 获取docker镜像 docker pull mongo 1.2 创建mongodb容器 docker run --name my-mongo -p 27 ...

  5. dispatch_barrier_async--屏障是一个同步点

    Discussion Calls to this function always return immediately after the block has been submitted and n ...

  6. linux 消息队列

    消息队列,这个可是鼎鼎大名,经常在某些地方看见大家那个膜拜,那个,嗯,那个... 那就给个完整的例子,大家欣赏就行,我一直认为不用那个,嗯@ 这个队列的最大作用就是进程间通信,你要非搞个持久化,那也行 ...

  7. openstack--8--控制节点部署Dashboard

    Horizon介绍 Dashboard服务,这里具体的产品就是Horizon1.它提供一个Web界面操作Openstack的系统2.使用Django框架基于Openstack API开发3.支持将Se ...

  8. 【转】谷歌三大核心技术(三)Google BigTable中文版

      谷歌三大核心技术(三)Google BigTable中文版 摘要 Bigtable 是一个分布式的结构化数据存储系统,它被设计用来处理海量数据:通常是分布在数千台普通服务器上的PB级的数据.Goo ...

  9. JavaScript中的垃圾回收机制与内存泄露

    什么是内存泄露? 任何编程语言,在运行时都需要使用到内存,比如在一个函数中, var arr = [1, 2, 3, 4, 5]; 这么一个数组,就需要内存. 但是,在使用了这些内存之后, 如果后面他 ...

  10. centos7开机不进入图形界面

    centOS7开机不进入图形界面设置和centOS6系列不同的是,不再是直接改文件中的5就可以了. centOS7设置如下: systemctl get-default    //获取当前的默认tar ...