JDT:從JavaProject中擷取編譯單元(ICompilationUnit)

IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();IProject project = root.getProject("test");try {project.open(null /* IProgressMonitor */);} catch (CoreException e) {// TODO Auto-generated catch blocke.printStackTrace();}IJavaProject

外掛程式開發,為某個編輯器貢獻右鍵菜單

和為視圖貢獻菜單類似。重複內容請參考"為某個視圖添加右鍵菜單"以java編輯器為例。 step1:建立一個org.eclipse.ui.popupMenus擴充點,在其下建立一個viewerContribution,id任意(注意保持唯一,不要和工作台和自己的viewerContribution重複),targetID設定為"#CompilationUnitEditorContext","#CompilationUnitEditorContext"被作為MenuManager的id由java編輯

treeviewer.setSelection(ISelection selection, boolean reveal)傳true時無法選中子結點

有前同事問到此問題。調試後發現,是由於TreeViewer的ContentProvider中沒有實現getParent方法造成的。關於getParent方法的說明如下:public Object getParent(Object element)The tree viewer calls its content provider’s getParent method when it needs to reveal collapsed domain objects

eclispe安裝配置技巧

1.安裝綠色軟體,解壓縮即可,假設eclispe安裝在D:/eclispe需要注意的是,在啟動eclipse前,確保你已經安裝了相應版本的JDK,並設定好了Path路徑。如何安裝JDK,在此不作贅述。 2.安裝外掛程式a.覆蓋方式(不推薦)Eclipse的外掛程式實際上都有一個目錄規範eclipse、eclipse/features、eclipse/plugins,覆蓋安裝方式就是簡單的將外掛程式中features、plugins複製到eclipse安裝目錄中的eclipse/features、

P.NP.NP-Complete.NP-Hard的定義

你會經常看到網上出現“這怎麼做,這不是NP問題嗎”、“這個只有搜了,這已經被證明是NP問題了”之類的話。你要知道,大多數人此時所說的NP問題其實都是指的NPC問題。他們沒有搞清楚NP問題和NPC問題的概念。NP問題並不是那種“只有搜才行”的問題,NPC問題才是。好,行了,基本上這個誤解已經被澄清了。下面的內容都是在講什麼是P問題,什麼是NP問題,什麼是NPC問題,你如果不是高度興趣就可以不看了。接下來你可以看到,把NP問題當成是 NPC問題是一個多大的錯誤。還是先用幾句話簡單說明一下時間複雜度。

普通的單頁編輯器

這裡指導的所謂"普通的單頁編輯器"是指直接繼承自EditorPart的編輯器,只有一個頁面。和繼承自MultiPageEditorPart不同。普通編輯器的儲存分三步走:1.在編輯器中定義一個標誌編輯器是否髒的變數:private boolean isDirty = false;//編輯器是否髒的標識,初始置為false2.覆蓋父類的isDirty()方法,如下:public boolean isDirty() {   return this.dirty;}3.在需要監聽修改的地方調用如下代碼,

JDK5.0新特性

雖然JDK7.0都快要出來了。但JDK5.0無疑是一個經典版本。較之先前的版本,JDK5.0增加了許多優越的特性(當然不是每個特性都優越,仁者見仁)。比如Annotation在Junit4.x,EJB,Hibernate3.x中都有運用到,不一定需要自己自訂Annotation,但能使用和讀懂程式是最基本的要求。在程式中加入Generics,程式會更安全,在編譯階段就能暴露出錯誤。經過一下午的學習,個人認為,必須瞭解和掌握的JDK5.0新特性如下:1.Annotation:註解(會簡單使用)2.

與編輯器相關的IEditorInput

1.一個編輯器要對應一個IEditorInput和EditorPart。IWorkbenchPage是根據IEditorInput取得EditorPart的。在通常的應用中,通用是在表格或者樹中雙擊結點然後開啟編輯器進行編輯。這時候,針對一個結點最多隻能有一個編輯器出現,即如果針對某個結點已經開啟了編輯器,這時候就不應該再開啟一個編輯器,而應該將已經開啟的編輯器置頂,"置頂"在這裡指將編輯器啟用。通常有2種做法,方法一是針對IEditorInput製造一個單例,這樣自始至終都只會有一個IEdit

使用Manifest和Attributes類解析形如MANIFEST.MF格式檔案內容

使用Manifest和Attributes類解析形如MANIFEST.MF格式檔案內容如在Eclipse外掛程式開發中常用的MANIFEST.MF檔案(通常位於工程根目錄下的META-INF下)如下,即為一個MANIFEST.MF檔案內容。Manifest-Version: 1.0Bundle-ManifestVersion: 2Bundle-Name: ImportAndExportWizard Plug-inBundle-SymbolicName:

集合架構類中的枚舉和迭代

枚舉和迭代的功能是將一個集合對象中所有元素順序列舉出來,它們分別由Enumeration介面和Iterator介面所定義。Enumeration介面是在Java標準版1.0所定義的,而Iterator介面則是從Java標準版1.2開始定義的。兩者既有相同之處,也有不同,但目前在Java語言中推薦使用Iterator介面來替換Enumeration介面。下面詳細介紹兩者之不同:Enumeration介面僅包含兩個方法聲明,其描述如下:①publicboolean hasMoreElements()

線程讓步yield

 當線程在運行中執行了Thread類的yield()靜態方法,如果此時具有相同優先順序的其他線程處於就緒狀態,那麼yield()方法將把當前啟動並執行線程放到可運行池中並使另一個線程運行,如果沒有相同優先順序的可運行線程,則yield()方法什麼都不做。  注意:yield方法執行後,若其他線程獲得了一個啟動並執行機會,當前線程轉到就緒狀態。這點和sleep,wait不同,後兩者是轉到阻塞狀態。 

設定編輯器的標題

通常情況下,我們可以覆蓋init()方法,設定setPartName(),如下普通編輯器(IEditorPart):@Overridepublic void init(IEditorSite site, IEditorInput input)throws PartInitException {       this.setSite(site);       this.setInput(input);      

useradd、adduser和userdel在使用時的注意事項

 1. 使用useradd時,如果後面不添加任何參數選項,例如:#sudo useradd test建立出來的使用者將是預設“三無”使用者。一無Home Directory,二無密碼,三無系統SHELL。如果不想出現"三無"現象加一個參數即可,useradd -m 使用者名稱    2. 使用adduser時,建立使用者的過程更像是一種人機對話,系統會提示你輸入各種資訊,然後會根據這些資訊幫你建立新使用者      

sleep和yield方法的區別

sleep()方法和yield()方法都是Thread類的靜態方法,都會使當前處於運行狀態的線程放棄cpu,把運行機會讓給別的線程。兩者的區別在於:1.sleep()方法會給其他線程啟動並執行機會,而不考慮其他線程的優先順序,因此會給較低優先順序的一個啟動並執行機會;yield()方法只會給相同優先順序或者更高優先順序的線程一個啟動並執行機會。 2.當線程執行了sleep(long

多頁編輯器的儲存

以繼承自FormEditor類的多頁編輯器為例。繼承自FormEditor編輯器的儲存,其中FormEdiotr繼承自MultiPageEditorPart實際上它的儲存還是需要調用每一個頁面的儲存,如public void doSave(IProgressMonitor monitor){    tagPage.doSave(monitor);//省略其它page的doSave(monitor)調用  

編輯器的常用方法

1.boolean

Groovy初識

groovy:['gru:vi]:迷人的,絕妙的1.Groovy是Java平台上的動態指令碼語言,抽象程式更高●可以更簡單快速地開發,可以編寫更少的代碼2.與Java語言無縫整合,可稱為"超級Java"●使用"類Java"文法,Java程式員可以快速過渡。●Groovy與Java二進位相容,都產生位元組碼,所以可以與使用Java語言所編寫的架構和組件完美整合,並且效率安全方面比其他指令碼語言更高。●Groovy對象就是Java對象,使用與JDK相同的API。●可以保護整個Java產業在Java上

instanceof接受空值

編碼過程中,經常提醒自己要避免null值。今天無意思中想到instanceof,試試,發現該操作符是接受null值的,遇到null對象返回false。並不會報NullExceptinException。或許也是的,它本身也不是很明顯的類方法的調用。或者jvm對其進行了特殊處理。package com.jfans;public class InstanceofDemo {public static void main(String[] args) { Object obj =

JVM之池—-String,Integer

----String1.對於Java程式中的字元直接量,JVM會使用一個字串池(Stirng pool)來儲存它們:當第一次使用某個字串直接量時,JVM會將它放入字串池進行緩衝,這有點像是享元模式的應用。在一般情況下,字串池中的字串對象不會被記憶體回收行程回收,當程式再次需要使用該字串時,無需重新建立一個新的字串而是直接讓引用變數指向字串池中已有的字串。2.String str = new String("Hello,Wrold!");建立了幾個對象?答案是:2個。字串池中一個。堆記憶體中一個。

如何選擇資料結構

Java Collections Framework獲得了Jolt大獎。學名是集合架構。也有人叫容器。實際上就是一些常用資料結構的實現。●實際上只有三種容器:Map、List、Set  1.Hashtable、Vector等是過去遺留下來的類,目的是為了相容舊的系統,我們現在不要再使用它們。遺留類和現在新的集合架構類唯一的區別是前者(Hashtable,Vector等)是安全執行緒的,後者(Map,List,Set等)不是安全執行緒的。在多線程環境下(涉及到並發訪問時)當然要安全執行緒集合類了,

總頁數: 61357 1 .... 21431 21432 21433 21434 21435 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.