将NetBeans代码模板弯曲到我的意愿

任何阅读过我关于NetBeans的文章的人都知道,我真的很喜欢NetBeans的众多功能。 但是,最近,我发现自己对NetBeans特定功能的特定问题越来越恼火。 最终,它使我烦恼不已,促使我开始研究如何根据自己的喜好禁用或更改该功能。 这篇文章介绍了我如何学会按自己的意愿弯曲NetBeans代码模板,从而使我对模板代码完成更加满意。

NetBeans为for循环的几种不同表现形式提供了几种代码模板。 这些包括自动代码完成for阵列上的环,在集合上,上iterables,在地图上,在整数到指定的最大值,等等。 通过
默认情况下,在NetBeans代码编辑器中键入适当的缩写并按空格键后,将自动调用这些代码模板。

我遇到的问题是,在大多数情况下,我只是尝试键入' for ( '以在集合上使用增强的for循环,但是缩写为'for'的NetBeans代码模板正在启动并在其中生成for循环。与十次迭代的整数虽然对于预定次数的历史这样的整数迭代是最常见的用途。 for ,引入的增强的for循环与J2SE 5改变了一切;我现在使用for用于增强的for循环在集合上,数组,并且映射的次数远远超过了我使用整数迭代规定次数的次数。

接下来的两个屏幕快照演示了我刚刚描述的问题。 第一个屏幕快照显示了NetBeans代码编辑器,当我准备开始键入for循环以遍历提供给我要实现的方法的集合时。 第二个屏幕快照显示了NetBeans在编辑器中在“ for”之后键入空格后自动生成的代码。 这不是我想要的,因此我必须删除生成的大部分代码,以使其适应我的集合。

这种行为对我来说是个问题,原因是缩写“ for”恰好也是我要输入的Java关键字。 当我在'for'后面输入空格时,我只是在输入Java代码,但是NetBeans将其解释为我,这意味着我希望for循环的代码模板在整数上生成。 当我输入“ for”时,我几乎从来不需要它。 解决此问题的一种方法是更改​​NetBeans模板,以便使用空格以外的其他方式激活它们。 下一系列快照演示了如何执行此操作。 在这种情况下,我将Shift + Space更改为激活代码模板的内容,但是NetBeans还支持使用Tab或Enter作为击键来激活键入的缩写的代码模板。

随着代码模板的更改,使它们被激活(在Shift + Space上扩展了模板),而不仅仅是在Space上,困扰我的问题就消失了。 这显示在下一个屏幕快照中。 该图显示,在我键入“ for”和一个空格之后,代码保持原样,而不是触发模板代码完成,而添加了我不希望的“ for”循环实现。

我刚刚演示的解决方案(将Space更改为Space + Shift作为扩展代码模板的激活)肯定使我摆脱了使用“ for”循环时我很少想要的代码完成的最初麻烦。 当我确实需要时,我仍然可以使用Space + Shift来完成代码。 最后一点很重要,因为NetBeans确实提供了其他几个“ for”循环完成代码模板,其中包括一个适合我要使用“ for”循环的典型情况的模板。 下一个屏幕快照显示了NetBeans中使用两个可用的“ for”代码模板的代码,但其中两个都没有。

作为该图像指示,NetBeans的载体“ ”(整数迭代已经示出),“FORC”(迭代器上收集,允许不允许在迭代器行为通过增强for-each循环),“ ”(换每个样式一般收集/枚举迭代;我最常使用的迭代),“ fori ”(数组迭代),“ forl ”( List迭代)和“ form ”( 映射迭代)作为代码模板的缩写,可自动生成不同类型的“ for”循环。 尽管未在图中显示,但NetBeans还支持代码模板缩写“ forst ”,用于在StringTokenizer上生成“ for”循环,以及“ forv ”,用于在Vector上生成“ for”循环。

此时,当我想要一种不同的“ for”循环类型时,键入适当的NetBeans代码模板缩写后,我可能已经停止并只是计划使用Shift + Space。 但是,这有一些缺点。 首先,似乎更改启动代码模板生成所依据的密钥库是“要么全有要么全无”; 当我将其应用于“ for”模板时,所有模板都只能通过Shift + Space激活。 还有其他模板可以更自然地匹配我的需求,我喜欢通过空格激活它们,而不需要使用Shift + Space。 其次,因为我确实在大多数情况下都使用“ for”循环来遍历使用“ for Each”样式增强的for循环遍历集合的同一情况,所以我想我的偏好是每次生成我输入“ for”后跟一个空格的时间。 我只需要在极少数情况下“撤消”这一代,而不希望使用增强的for循环。 幸运的是,NetBeans允许我创建新的代码生成模板并修改现有的模板。 这使我可以将“ for”更改为我想要的情况(“ fore”情况)。 接下来,我将探讨这种方法。

我的计划是将“ fore”模板的“扩展文本”复制为“ for”模板的扩展文本。 但是,我不想在极少的情况下丢失默认情况下“ for”的内容,因此我想创建一个新的代码模板,可以将当前的“ for”扩展文本复制到其中。 就我而言,我正在创建一个缩写为“ fort”的新模板,将现有的“ for”扩展模板文本复制到其中。 然后,我可以将“ fore”的扩展模板文本复制到“ fore”。 这有效地使NetBeans生成我在键入“ for”然后输入空格时几乎总是想要的代码。 这也使我可以更改代码模板,以仅在空格上激活,而不需要Shift + Space。 接下来的三个屏幕快照演示了此过程。

修改“ for” NetBeans代码模板的积极影响是,我能够将迭代变量的final关键字添加到模板中。 这意味着我不需要手动添加“ 最终 ,当我在模板生成后修饰符希望它有 。 当然,这意味着我也可以在NetBeans提供的其他模板中添加final关键字。 通过将“ for”代码模板更改为我通常想要的情况(在集合中使用for-each-style进行迭代),可以在要实现的方法中实现它。 这显示在下一个屏幕快照中。

最后一张图片显示,当我在'for'关键字后键入一个空格时,我现在得到了我最想要的'for'循环。 在极少数情况下,我想要其他类型或使用'for'循环,则可以改用这些类型的代码模板的首字母缩写,或者(更可能是因为我可能不记得使用这些很少使用的代码模板)只是删除代码那不适用。

结论

NetBeans以一种我几乎不想要的方式为我“完成”我的“ for”循环的事实真让我感到不安(为“ 您使我完整 ”赋予了新的含义)。 幸运的是,NetBeans提供了可接受的选项来消除这种刺激性。 如本文所演示的,很容易将NetBeans代码模板更改为基于明显比空格更明确的内容(Shift + Space,Tab或Enter)进行扩展。 更好的是,NetBeans允许添加,修改和删除模板,从而在确定应用哪些模板以及如何应用它们方面具有更大的灵活性。 这看起来似乎是一件小事,但由于我经常编写的“ for”循环不再对我造成错误,因此我感到非常高兴。

参考:在Inspired by Actual Events博客上,我们的JCG合作伙伴 Dustin Marx 将NetBeans代码模板弯曲成我的意愿 。

翻译自: https://www.javacodegeeks.com/2013/04/bending-netbeans-code-templates-to-my-will.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/368442.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL安装过程

最近试着重装了下MySQL,安装过程很简单,希望能帮助大家 mysql安装过程 1. 下载: 我下载的是64位系统的zip包: 下载地址:https://dev.mysql.com/downloads/mysql/ 下载zip的包。 下载后解压到对应目录 如:D:…

极简的MyBatis在Spring Boot下的配置

以我的一个项目为例。 0、项目结构&#xff1a; 1、POM中添加MyBatis的依赖&#xff1a; <dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.3.1</version> …

mysql sum很慢,可以在MySQL中加快sum()吗?

Im doing a "select sum(foo) from bar" query on a MySQL database thats summing up 7.3mm records and taking about 22 seconds per run. Is there a trick to speeding up sums in MySQL?解决方案No, you cant speed up the function itself. The problem here…

css常用属性总结:颜色和单位

在css代码编写中&#xff0c;估计颜色和单位是必不可少的&#xff0c;然而在css中关于颜色和单位值的写法有很多种写法&#xff0c;所以有必要把它弄清楚。 颜色 当初我在初学前端的时候&#xff0c;就会冒出一个疑问“我该如何设置网页颜色&#xff1f;”&#xff0c;一般常…

JPA –我应该成为懒惰的极端主义者吗?

当您与开发人员讨论将对象映射到关系数据库时&#xff0c;他们经常抱怨JPA性能差&#xff0c;JPA提供程序的行为不可预测等。通常&#xff0c;在对话的某些时候&#xff0c;您会听到&#xff1a; “让我们完全放弃这项技术&#xff0c;我们在上个月的会议上看到了更好的东西。 …

mysql恢复 报错_Mysql 数据恢复报错

1.测试mysql binlog 数据恢复功能&#xff0c;我的mysql版本是5.7.172.删了数据之后&#xff0c;执行show binlog events 命令得到如下记录3.找到开始删除和结束删除的位置&#xff0c;然后执行恢复命令:mysqlbinlog --no-defaults --start-position8991 --stop-position290468…

IONIC

1.项目摘要  随着移动互联网的不断发展&#xff0c;移动端流量所占比例已经越来越高。下图来自IResearch所做的关于移动互联网的市场调研报告 由此我们可以看出&#xff0c;移动互联网在人们生活中的位置越来越重要。 受益于国家“提速降费”以及即将取消流量漫游的优惠政策&…

line-height与图片底部间隙的学习整理转述

前言&#xff1a;这是笔者学习之后自己的理解与整理。如果有错误或者疑问的地方&#xff0c;请大家指正&#xff0c;我会持续更新&#xff01; 看大牛张鑫旭的视屏可能会理解的更深一些&#xff0c;点击这里&#xff1b; line-height&#xff0c;两行文字的基线之间的距离&…

java学习之异常之格式

第一个格式&#xff1a; try{}catch(){} 第二个格式&#xff1a; try{}catch(){}finally{} 第三个格式&#xff1a; try{}finally{} 注意&#xff1a;catch是用于处理异常&#xff0c;如果没有catch就代表异常没有被处理过&#xff0c;如果该异常是检测时异常&#xff0c;那么必…

分数DRL:在OptaPlanner中更快,更轻松

对于OptaPlanner &#xff08; Drools Planner&#xff09;6.0.0.Beta1&#xff0c;我已经用更优雅的ConstraintMatch系统替换了ConstraintOccurrence。 结果是您的DRL评分文件为&#xff1a; 快多了 更容易读写 错误的发生率要低得多&#xff0c;因为它们使分数损坏变得更加…

mysql 的数据库实例理解_理解数据库和实例

数据库&#xff1a;物理操作系统文件或者其他形式文件类型的集合。在mysql中&#xff0c;数据库文件可以是frm、MYD、MYI、ibd等结尾的文件。当使用NDB引擎时&#xff0c;数据库的文件可能不是操作系统文件&#xff0c;而是存放于内存之中的文件。实例&#xff1a;mysql数据库由…

STM32 环境搭建

从之前的51&#xff0c;到后来的AVR&#xff0c;再到现在的STM32&#xff0c;处理器的处理能力在不断的提高&#xff0c;我们也跟随着处理器一步一步的玩到了STM32 目前STM32的开发环境很多&#xff0c;常用的例如Keil&#xff0c;IAR等&#xff0c;但是这些软件都是收费的&…

css常用属性初总结:伪元素和伪元素

前面几遍中我们分别说到了id选择器和class选择器&#xff0c;以及它们的区别和联系&#xff0c;下面大家一起来探究一下神奇的为类和伪元素吧。 其实以前我对伪类和伪元素也是搞得稀里糊涂的&#xff0c;现在决定剥开它神秘的外衣&#xff0c;首先&#xff0c;究竟什么是伪类&…

Java 8:CompletableFuture的权威指南

Java 8即将到来&#xff0c;因此该学习新功能了。 尽管Java 7和Java 6只是次要的发行版&#xff0c;但版本8将向前迈出一大步。 也许太大了&#xff1f; 今天&#xff0c;我将为您详细介绍JDK 8中的新抽象– CompletableFuture<T> 。 众所周知&#xff0c;Java 8有望在不…

mysql数据库工程师网易微专业_网易MySQL数据库工程师微专业学习笔记(五)

一、mysql数据库中的存储引擎mysql在创建数据表时可以通过engine关键字设置存储引擎的类型&#xff0c;也可以通过alter命令来修改表的存储引擎。可以通过show engines命令来查看当前mysql数据库支持的存储引擎的类型&#xff0c;一般场景的存储引擎有&#xff1a;InnoDB、MyIS…

Java并发编程笔记之ConcurrentLinkedQueue源码探究

JDK 中基于链表的非阻塞无界队列 ConcurrentLinkedQueue 原理剖析&#xff0c;ConcurrentLinkedQueue 内部是如何使用 CAS 非阻塞算法来保证多线程下入队出队操作的线程安全&#xff1f; ConcurrentLinkedQueue是线程安全的无界非阻塞队列&#xff0c;其底层数据结构是使用单向…

03 Day Python数据类型

一&#xff1a;什么是数据&#xff1f; x10&#xff0c;10是我们要存储的数据 2 为何数据要分不同的类型 数据是用来表示状态的&#xff0c;不同的状态就应该用不同的类型的数据去表示 3 数据类型 数字 字符串 列表 元组 字典 集合 二&#xff1a;数字int #bit_length() 当十进…

border三角形阴影(不规则图形阴影)和多重边框的制作

前言&#xff1a;这是笔者学习之后自己的理解与整理。如果有错误或者疑问的地方&#xff0c;请大家指正&#xff0c;我会持续更新&#xff01; 1. border的组合写法 border&#xff1a;border-width border-style border-color; border-width&#xff1a;边框宽度&#xff0…

JDK 8 Javadoc调整了方法列表

自开始以来&#xff0c; Javadoc输出基本上是静态HTML&#xff0c;具有导航链接和外观的简单样式表样式。 Java SE 7很长时间以来就看到Javadoc输出默认外观的第一个重大变化 &#xff0c;现在看来JDK 8将在生成的Javadoc输出上引入新的变化。 在本文中&#xff0c;我将通过JDK…

hdp安装 不安装mysql_hdp安装及使用问题汇总(一)

1)安装HDP时&#xff0c;如果打印如下错误信息&#xff1a;[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:579)是由于系统的python版本过高&#xff0c;导致验证ssl失败&#xff0c;将python降级为2.7.5以下或修改每个安装节点的python证书验证配置文件…