NetBeans 7.1:创建自定义提示

我已经在帖子中介绍了一些我最喜欢的NetBeans提示 ,这些信息是用于使Java代码现代化的七个NetBeans提示和七个不可或缺的NetBeans Java提示 。 这两个帖子中涉及的十四个提示仅占NetBeans支持的“即开即用”提示总数的一小部分。 但是,由于NetBeans 7.1使得编写自定义提示成为可能,因此NetBeans用户可以获得更大的灵活性。 我在这篇文章中看一个简单的例子。

Geertjan Wielenga 在NetBeans IDE 7.1中发布的自定义声明性提示首先介绍了NetBeans的“检查和转换”(又名“ 检查和重构 ”)对话框,该对话框可从“重构”菜单中获得(该菜单又可通过下拉菜单获得)菜单栏中的“重构”菜单,或者通过在NetBeans编辑器中单击鼠标右键。 以下屏幕快照显示了它的外观。

“检查和转换”对话框的“检查”字段允许NetBeans用户定制应检查的项目或文件。 “检查和转换”对话框的“使用”部分允许NetBeans用户指定要检查的提示。 在这种情况下,我正在使用自定义提示进行检查,并且可以通过单击“管理”按钮并选择“自定义”复选框来看到它。 请注意,如果初次使用“自定义”不是一个选项,则可能需要单击左下角的“新建”按钮。

当我单击“管理”并选中“自定义”框时,它会展开,并且可以看到新创建的“检查”提示。 如果单击此名称,则可以重命名,并且在这种情况下也可以重命名。 重命名的检查(“ CurrentDateDoesNotNeedSystemCurrentMillis”)显示在下一个屏幕快照中。

要创建提示并提供框中显示的描述,我可以单击“编辑脚本”按钮。 这样做会导致在下一个屏幕快照中显示小的编辑器窗口。

如果需要更多空间来编辑自定义检查/提示,则“在编辑器中打开”按钮将导致在NetBeans文本编辑器中打开文本,在该文本编辑器中可以编辑普通的Java代码和XML代码。

有了自定义检查/提示后,就该在一些Java代码上进行尝试了。 以下代码清单使用了对System.currentTimeMillis()的多余调用,并将其结果传递给java.util.Date单长参数构造函数 。 这是不必要的,因为Date的无参数构造函数将根据当前时间(现在的时间)自动实例化Date的实例。

RedundantSystemCurrentTimeMillis.java

package dustin.examples;import static java.lang.System.out;
import java.util.Date;/*** Simple class to demonstrate NetBeans custom hint.* * @author Dustin*/
public class RedundantSystemCurrentTimeMillis
{public static void main(final String[] arguments){final Date date = new Date(System.currentTimeMillis());out.println(date);}
}

上面的代码可以正常工作,但是可能更简洁。 当我告诉NetBeans在“检查和转换”对话框中将我的新检查与该项目相关联时,NetBeans可以为我标记此标记并建议修复。 接下来的三个屏幕快照展示了NetBeans将用黄色灯泡图标和黄色下划线标记警告,在单击灯泡时将推荐该修复程序,并在选择该灯泡时实施建议的修复程序。

如上所示,一个简单的自定义提示允许NetBeans根据我的请求标识,标记和修复不必要的System.curentTimeMillis() 。 我之前已经写过NetBeans的提示非常方便,因为它们实际上对Java开发人员做了三件事:自动为开发人员标记需要改进的代码区域,经常在需要时自动解决问题,以及交流编写Java的更好方法。 对于这种情况的最后一个好处,此自定义提示的存在有助于向其他Java开发人员传达有关Date类的更多知识,以及在需要当前日期/时间时实例化它的更好方法。

使用NetBeans的自定义提示最困难的方面是查找有关如何使用它们的文档 。 当前可用的最佳资源似乎是NetBeans 7.1发行说明 ,几篇Wielenga帖子( NetBeans IDE 7.1中的自定义声明性提示 , Oh No Vector ! 、 Oh No @Override!/ Oh No Utilities.loadImage! )和Jan Lahoda的jackpot30规则语言 (涵盖自定义检查/提示使用的规则语言语法 ,并显示在上面的简单示例中)。 NetBeans IDE Java编辑器教程中的“通过检查和转换进行重构”还包括有关管理自定义提示的部分 。 希望能够解决Bug 210023的问题。

我的示例自定义NetBeans提示专门用于Date类。 一个有趣且有点相关的StackOverflow线程询问是否可以创建NetBeans自定义提示来建议使用Joda Time而不是Date或Calendar 。 有关该线程的响应,请参阅《 NetBeans Java提示模块教程》 。 查看该教程会提醒我,本文中概述的方法以及NetBeans 7.1中提供的方法肯定已改进并且更易于使用。

顺便说一句,在NetBeans 7.1中很容易编写类似于所引用的StackOverflow线程中所要求的提示。 此示例中没有转换,因为将Date类更改为Joda Time类可能需要比简单转换所能处理的代码更改更多。 因此,此提示仅建议更改为Joda Time。 下一个屏幕快照显示了简单的提示以及它们在NetBeans编辑器中的显示方式。

每个版本的NetBeans似乎都会为NetBeans支持的大量有用提示添加更多有用的提示。 但是,对于NetBeans开发人员来说,不可能添加每个团队或项目可能想要的所有提示。 此外,不希望有每一个可能的暗示,即每个社区成员可能都会提出来的所有提示。 因此,在NetBeans中指定自定义提示的能力以及将这些提示选择性地应用到项目和文件的能力都是非常需要的功能。

参考:在Inspired by Actual Events博客上,由我们的JCG合作伙伴 Dustin Marx 创建了NetBeans 7.1自定义提示 。


翻译自: https://www.javacodegeeks.com/2012/05/netbeans-71-create-custom-hint.html

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

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

相关文章

qregexp括号匹配_转:Qt的正则表达式和QRegExp

考虑一下我们经常遇到的问题,比如gemfield想从青岛之光读书(www.civilnet.cn/book)中找一个关键的电话号码,通常第一步就是将书中所有的电话号码查找出来放在手边。那么怎么拟定查询条件呢?电话的格式有如下几种:01088888888010 8…

具有Tron效果的JavaFX 2 Form

这是一个具有TRON效果的简单JavaFX登录表单。 在此示例中,我使用CSS设置TextField和Button的样式。 这是CSS和Effect代码的片段: .text-field{-fx-background-color: transparent;-fx-border-color: #00CCFF;-fx-text-fill: white; }.password-field{-fx…

Akka的字数统计MapReduce

在我与Akka的日常工作中,我最近写了一个字数映射表简化示例。 本示例实现了Map Reduce模型,该模型非常适合横向扩展设计方法。 流 客户端系统(FileReadActor)读取文本文件,并将每一行文本作为消息发送给ClientActor。…

Struts2之环境配置

在学习struts2之前,首先我们要明白使用struts2的目的是什么?它能给我们带来什么样的好处? 设计目标 Struts设计的第一目标就是使MVC模式应用于web程序设计。在这儿MVC模式的好处就不在提了。 技术优势 Struts2有两方面的技术优势,…

基于JavaFX的SimpleDateFormat演示程序

对于使用Java Date进行格式化的新手甚至对于使用Java Date进行格式化的有经验的Java开发人员而言,可能有些棘手的事情是使用SimpleDateFormat规范日期/时间格式。 SimpleDateFormat的基于类级别的Javadoc的文档非常详尽,涵盖了表示日期/时间的各个组成部…

iOS与H5交互

前提:在iOS控制器中加载UIWebView,设置代理,遵守UIWebViewDelegate协议。 一、iOS调用JS方法 通过iOS调用JS代码实现起来比较方便直接调用UIWebView的方法- (nullable NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script…

markdownTest

MARKDOWNTEST 11111111111111有一种神奇的语言,它比html还简单,它巧妙地将内容与格式整合在一起——它就是Markdown有一种神奇的语言,它比html还简单,它巧妙地将内容与格式整合在一起——它就是Markdown 111111111111111222222222…

Aleri –复杂事件处理

Sybase的Aleri流媒体平台是CEP市场中最受欢迎的产品之一。 它在Sybase的交易平台RAP版本中使用,该版本在资本市场中广泛用于管理投资组合中的头寸。 今天,在这个由多个部分组成的系列文章的第一个部分中,我希望提供Aleri平台的概述&#xff0…

python版本回退_Python爬虫之BeautifulSoup解析之路

上一篇分享了正则表达式的使用,相信大家对正则也已经有了一定的了解。它可以针对任意字符串做任何的匹配并提取所需信息。但是我们爬虫基本上解析的都是html或者xml结构的内容,而非任意字符串。正则表达式虽然很强大灵活,但是对于html这样结构…

WebStorm 运行Rect Native 项目

今天教大家如何直接使用WebStorm这个IDE直接完成编码运行项目工作.这样就可以不用打开Xcode了. 1.首先点击WebStorm右上方的下拉箭头弹出的Edit Configurations.... 2.然后会进入一个配置页面.点击左上方的.在弹出的列表中选中npm.如图. 3.在右边的配置框中,先选择Command为hel…

python编程比赛_用Python编程分析4W场球赛后,2018世界杯冠军竟是…

比赛已经开始,我们不妨用 Python 来对参赛队伍的实力情况进行分析,并大胆的预测下本届世界杯的夺冠热门球队吧!通过数据分析,可以发现很多有趣的结果,比如:找出哪些队伍是首次进入世界杯的黑马队伍找出2018…

JavaFX 2 GameTutorial第2部分

介绍 Ť他的是一系列与一个JavaFX 2游戏教程博客条目的第二批。 如果您尚未阅读第1部分,请参阅JavaFX 2游戏教程的简介部分。 在第1部分中,我提到了游戏的某些方面以及原型飞船的简单演示(原型由简单的形状组成),该飞船…

sqlyog连接mysql教程_如何用SQLyog实现远程连接MySQL

SQLyog客户端,用root用户远程链接MySQL时,提示ldquo;访问被拒绝rdquo;,在网上搜索了一下原因。原来是MySQL没有授权其远程链1,SQLyog客户端,,用root用户远程链接MySQL时,提示“访问被拒绝”&…

JavaME:Google静态地图API

无论您是需要基于位置的应用程序的地图还是只是出于娱乐目的,都可以使用有史以来最简单的方法:Google Static Maps API。 在这篇文章中,我们将看到如何从纬度和经度获得地图作为图像。 可以使用Location API获得纬度和经度,我们将…

深入探讨JS中的数组排序函数sort()和reverse()

最近在研究Javascript发现了其中一些比较灵异的事情。有点让人感到无语比如: alert(typeof( NaN NaN));//结果为假。 alert(typeof( NaN ! NaN));//结果为真。 嘿嘿,当然这个不是这篇文章要讨论的!!开始我们的正文 首先,我们来看一下JS中sor…

带有谓词的Java中的功能样式-第1部分

您一直在听到将要席卷全球的函数式编程,而您仍然坚持使用普通Java? 不用担心,因为您已经可以在日常Java中添加一些功能样式。 此外,它很有趣,可以节省许多代码行并减少错误。 什么是谓词? 实际上&#xff…

centos 6.5下安装文件上传下载服务

centos 6.5下安装文件上传下载服务 由于每次在CentOS中要下载一些配置文件到物理机,和上传一些文件到服务器,导致来回的开启ftp软件有点麻烦,这里我们可以使用文件上传下载服务,来解决上传和下载的问题。 1.登录服务器 2.执行命令…

Jenkins 入门系列--jenkins 介绍

第一章 Jenkins是什么? Jenkins 是一个可扩展的持续集成引擎。 主要用于: l 持续、自动地构建/测试软件项目。 l 监控一些定时执行的任务。Jenkins拥有的特性包括: l 易于安装-只要把jenkins.war部署到servlet容器,不需要数据库支…

20162303《程序设计与数据结构》第一周学习总结

学号 2016-2017-2 《程序设计与数据结构》第1周学习总结 教材学习内容总结 本周学习了基本的JAVA知识,虽然比较基础,但是在实际过程中还是出现了许许多多的问题,代码一遍遍的敲错,又一遍遍的修改,刚开始甚至不会切换模…

面向接口编程详解(三)——模式研究

通过前面两篇,我想各位朋友对“面向接口编程”的思想有了一定认识,并通过第二篇的例子,获得了一定的直观印象。但是,第二篇中的例子旨在展示面向接口编程的实现方法,比较简单,不能体现出面向接口编程的优势…