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.pswp.cn/news/372826.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/372826.shtml
英文地址,請注明出處:http://en.pswp.cn/news/372826.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

今年暑假不AC

Problem Description “今年暑假不AC?”“是的。”“那你干什么呢?”“看世界杯呀,笨蛋!”“#$%^&*%...”確實如此,世界杯來了,球迷的節日也來了,估計很多ACMer也會拋開電腦,奔向…

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…

Spring注解Annotion詳解

概述 注釋配置相對于 XML 配置具有很多的優勢: 它可以充分利用 Java 的反射機制獲取類結構信息,這些信息可以有效減少配置的工作。如使用 JPA 注釋配置 ORM 映射時,我們就不需要指定 PO 的屬性名、類型等信息,如果關系表字段和 PO…

CopyOnWrite容器

1.簡介 1.CopyOnWrite是程序優化的策略,當共享的內容需要修改時,復制出去一份進行修改,然后將原來的引用指向修改完的 2.java并發包(java.util.concurrent)中CopyOnWriteArrayList和CopyOnWriteArraySet實現了這個并發容器 3.好處:因為寫時是在復制的一份上操作,所以可以并發的…

Akka的字數統計MapReduce

在我與Akka的日常工作中,我最近寫了一個字數映射表簡化示例。 本示例實現了Map Reduce模型,該模型非常適合橫向擴展設計方法。 流 客戶端系統(FileReadActor)讀取文本文件,并將每一行文本作為消息發送給ClientActor。…

mysql如何設置多節點_詳細介紹Mysql5.7從節點設置多線程主從復制的辦法

軟件安裝:裝機軟件必備包SQL是Structured Query Language(結構化查詢語言)的縮寫。SQL是專為數據庫而建立的操作命令集,是一種功能齊全的數據庫語言。在使用它時,只需要發出“做什么”的命令,“怎么做”是不用使用者考慮的。SQL功…

python學習筆記 可變參數關鍵字參數**kw相關學習

在Python中可以定義可變參數,顧名思義,可變參數就是傳入參數是可變的。可以是任意個,以一個簡單的數學編程為例,計算 sum a * a b * b .....z * z 函數定義可以如下: def getsum(num) :sum 0for n in num :sum su…

Struts2之環境配置

在學習struts2之前,首先我們要明白使用struts2的目的是什么?它能給我們帶來什么樣的好處? 設計目標 Struts設計的第一目標就是使MVC模式應用于web程序設計。在這兒MVC模式的好處就不在提了。 技術優勢 Struts2有兩方面的技術優勢,…

mysql數據庫備份shell_mysql數據庫備份shell腳本分享

#!/bin/bash#2020年04月27日15:56:21#auto backup mysql db#by author www.cnbugs.com########################SQL_DB"$*"SQL_USR"backup"SQL_PWD"123456"SQL_CMD"/usr/bin/mysqldump"SQL_DIR"/data/backup/date %F"if [ $…

懶惰的JSF Primefaces數據表分頁–第1部分

今天,我們將使用帶有視圖范圍的托管bean的惰性列表進行JSF數據表分頁。 這些單詞/表達式是什么意思? 如今,有幾個JSF框架為數據表提供現成的分頁,列排序器和其他功能。 今天,我們將使用Primefaces數據表。 通常&#…

java 動態增加定時任務

直接上代碼 import org.apache.tools.ant.util.DateUtils; import org.quartz.CronTrigger; import org.quartz.JobDetail; import org.quartz.Scheduler; import org.quartz.SchedulerFactory; import org.quartz.impl.StdSchedulerFactory;import java.util.Calendar; import…

基于JavaFX的SimpleDateFormat演示程序

對于使用Java Date進行格式化的新手甚至對于使用Java Date進行格式化的有經驗的Java開發人員而言,可能有些棘手的事情是使用SimpleDateFormat規范日期/時間格式。 SimpleDateFormat的基于類級別的Javadoc的文檔非常詳盡,涵蓋了表示日期/時間的各個組成部…

mysql中預定義常量_PHP預定義常量

這些常量在 PHP 的內核中定義。它包含 PHP、Zend 引擎和 SAPI 模塊。PHP_VERSION (string)PHP_OS (string)PHP_EOL (string)自 PHP 4.3.10 和 PHP 5.0.2 起可用PHP_INT_MAX (integer)自 PHP 4.4.0 和 PHP 5.0.5 起可用PHP_INT_SIZE (integer)自 PHP 4.4.0 和 PHP 5.0.5 起可用D…

iOS與H5交互

前提:在iOS控制器中加載UIWebView,設置代理,遵守UIWebViewDelegate協議。 一、iOS調用JS方法 通過iOS調用JS代碼實現起來比較方便直接調用UIWebView的方法- (nullable NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script…

cocos2dx 3.x 蒙板 遮罩 點擊圓功能

//注冊觸摸EventListenerTouchOneByOne *listener EventListenerTouchOneByOne::create();listener->onTouchBegan CC_CALLBACK_2(HelloWorld::onTouchBegan,this);listener->onTouchMoved CC_CALLBACK_2(HelloWorld::onTouchMoved,this);listener->onTouchEnded …

markdownTest

MARKDOWNTEST 11111111111111有一種神奇的語言,它比html還簡單,它巧妙地將內容與格式整合在一起——它就是Markdown有一種神奇的語言,它比html還簡單,它巧妙地將內容與格式整合在一起——它就是Markdown 111111111111111222222222…

python模擬密碼有效性檢測功能_檢查密碼有效性(Django/Python)

我有一個非常小的Django應用程序,主要是為了學習。我使用的是Django提供的內置用戶模型。為了學習這個功能,我創建了一些頁面,這些頁面允許我創建和編輯用戶,而不必進入管理面板。在register頁面允許我非常容易地檢查密碼和電子郵…

教程:Hibernate,JPA –第1部分

這是關于使用Hibernate和JPA的教程的第一部分。 這部分是對JPA和Hibernate的介紹。 第二部分將研究使用Spring ORM組合Spring MVC應用程序以減少創建CRUD應用程序所需的代碼量。 為此,您需要熟悉Maven,JUnit,SQL和關系數據庫。 依存關系 首…

TCP、UDP套接字的數據傳輸

tcp發送數據&#xff1a; 1 #include <sys/types.h> 2 #include <socket.h> 3 ssize_t send(int sockfd,const void *msg,size_t len,int flags); 函數send只能對面向連接的套接字使用。參數sockfd為已經建立好連接的套接字描述符。參數msg指向待發送數據的緩沖區&…